Serial.wz

serial.wz encodes data as a sequence of typed blocks:

[ type_id (1 byte) | length (varint) | value (bytes) ]

Supported primitives:
u8, u16, u32, u64, i8, i16, i32, i64, f32, f64, bool, string, bytes serial.wz

Composite types:
list, map, struct (ordered fields) serial

Developers often create proprietary binary formats. serial.wz could be: Supported primitives: u8, u16, u32, u64, i8, i16,

Example pseudocode:

ofstream file("serial.wz", ios::binary);
serialize(device_config, file);

serial.wz test --loopback --send "hello" --expect "hello"