Just a "what if we had this" idea.
$ mkdir build
$ cd build
$ cmake ../
$ make
$ ./main | hexdump -C
00000000 00 00 00 00 1c 00 00 00 00 00 00 00 00 00 02 00 |................|
00000010 05 00 00 00 4a 00 00 00 08 00 00 00 02 00 01 00 |....J...........|
00000020 2f 6d 79 74 6f 70 69 63 00 00 00 00 00 00 00 00 |/mytopic........|
00000030 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000040 01 00 00 00 4f 00 00 00 0c 00 00 00 02 00 01 00 |....O...........|
00000050 02 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 |................|
00000060 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 |................|
00000070 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000080 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000090 01 00 00 00 37 00 00 00 08 00 00 00 02 00 01 00 |....7...........|
000000a0 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000000b0 0d 00 00 00 4a 00 00 00 0e 00 00 00 00 00 00 00 |....J...........|
000000c0 00 00 00 00 00 00 00 00 09 00 00 00 07 00 00 00 |................|
000000d0 7a 65 65 6b 5f 69 6e 69 74 00 00 00 00 00 00 00 |zeek_init.......|
000000e0 00 00 00 00 02 00 01 00 |........|
000000e8
$ ./main | capnp convert binary:packed | hexdump -C
00000000 10 1c 40 02 11 05 4a 51 08 02 01 ff 2f 6d 79 74 |..@...JQ..../myt|
00000010 6f 70 69 63 00 00 00 01 0e 00 00 11 01 4f 51 0c |opic.........OQ.|
00000020 02 01 01 02 01 01 00 00 01 02 01 01 00 00 01 0e |................|
00000030 00 00 11 01 37 51 08 02 01 01 05 00 00 11 0d 4a |....7Q.........J|
00000040 01 0e 00 00 11 09 07 ff 7a 65 65 6b 5f 69 6e 69 |........zeek_ini|
00000050 00 01 74 50 02 01 |..tP..|
00000056
$ ./main | capnp convert binary:json ../broker.capnp Envelope
{ "topic": "/mytopic",
"data": {"list": [
{"count": "1"},
{"count": "1"},
{"list": [
{"string": [122, 101, 101, 107, 95, 105, 110, 105, 116]},
{"list": []} ]} ]} }