libecbor is a CBOR library with a small memory footprint, small code size and no dependencies. It supports multiple encoding and decoding modes, each tailored for various constraints your device might have.
It is particularly friendly to MCUs as both encoding and decoding has an absolute upper bound on stack usage, regardless of the objects being manipulated.
CBOR is a lightweight JSON-like binary serialization format used in IoT and similar applications.
At the time of writing the library I was working at Amazon and CBOR was being used for communication with the (then in development) Nitro systems. I can’t remember exactly what irked me with the existing C/C++ implementations at that time, but I saw the need for a lighter-weight no-bullshit library.
Unfortunately I didn’t get to implement it there, but hopefully it found some use in the wild.