Wire format#
Packed and canonical#
Packed is byte-identical to Cap’n C++ PackedOutputStream /
capnp convert binary:packed (AddressBook golden), including the C++
0xFF extra-word heuristic.
Canonical form (capnp_canonicalize) is byte-identical to
capnp convert binary:canonical on AddressBook.
Empty struct writes B=-1 (0xFFFFFFFC), same as
c-capnproto and
capnp-fortran.
Schema-order encode#
test/test_addressbook.c sets fields in schema order and memcmp=s =addressbook_alice_bob.bin from official capnp encode.
List evolution#
Same cases as Cap’n C++ and capnp-fortran:
Writer encoded |
Reader asks for |
API |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
List(Bool) and List(Void) do not upgrade to struct views.
Tests: test/test_list_evolution.c.
Samples#
Suite |
Schema |
What |
|---|---|---|
|
|
Alice/Bob, phones, employment union |
|
|
Expression trees (serialization only) |
|
demo shapes |
core reader/builder |
Calculator RPC (interfaces, pipelining) is out of scope.