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.