Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

IPC and Codecs

Channel
A typed, directed endpoint. Channel<Tx, ...> sends one message type; Channel<Rx, ...> receives one message type.

Chan
A validated identifier in the signaling or framing namespace, such as an MU line, IPCC channel, or logical UART channel.

Codec
A serialization family that converts typed values to and from bytes. Consortium supports postcard, prost, and rkyv families behind features.

CodecFor<T>
The codec contract for a particular message type. Its Decoded<'buf> associated type supports both owned decoding and values that borrow the receive buffer.

Connect
The one-time asynchronous readiness rendezvous between peers. It runs after transport construction, before traffic, and before splitting a full-duplex transport.

Descriptor
Metadata at the start of a shared-memory structure. The CIPC descriptor identifies the IPC protocol and records the layout the peer must validate.

Doorbell
A signaling mechanism that wakes or notifies another processor without carrying the message payload. Implementations include STM32 IPCC/HSEM, i.MX MU, and GPIO.

IpcSafe
A marker trait and derive macro for types that may cross an IPC boundary. The derive rejects address-space-local or word-size-dependent fields such as pointers, references, function pointers, usize, and isize.

MTU
Maximum transfer unit: the largest encoded payload a channel can carry. It also sizes the channel’s fixed scratch buffer.

Primary / Secondary
Compile-time side markers used by shared-memory IPC. The primary publishes the descriptor; the secondary validates and acknowledges it. They are protocol roles, not processor priorities.

ReceivedMessage
The value returned by recv(). It wraps a codec’s decoded representation so the same API supports owned and zero-copy codecs.

Region
A shared-memory abstraction with an address, length, and explicit cache-maintenance semantics. Current region types include SRAM, DDR, and a virtual serial region.

Slot
A shared-memory area holding one directional message and its protocol metadata.

Transceiver
A bidirectional typed endpoint formed by pairing one Tx channel with one Rx channel.

Transport
The byte-moving layer beneath a channel. SendTransport and RecvTransport model its directional halves; Transport marks a full-duplex implementation.

Type-A / Type-B IPC
Informal project categories. Type-A uses a separate doorbell, as shared-memory IPC does. Type-B is transport-coupled: UART byte arrival is the notification, so no doorbell or processor side is required.