Skip to main content

Module record

Module record 

Source
Expand description

Record framing.

Every message that crosses the boundary is a tagged, versioned, length-prefixed record. The length is what makes the format extensible: a reader that does not recognise a tag steps over the record instead of giving up, and a reader that recognises a tag but was compiled before some of its fields existed reads the fields it knows and steps over the rest.

That is the whole compatibility story, and it is deliberately small enough to hold in your head. The rules are written out in docs/ABI.md and the tests in tests/forward_compat.rs are there to stop anybody quietly breaking them.

Structsยง

Header
The eight bytes in front of every record payload.
Tag
Which kind of record this is.