Libcbor – CBOR implementation for C and others
libcbor.org
libcbor.org
[1] http://code.haskell.org/~duncan/binary-experiment/binary.pdf
I twitted about that unusefulness here [1] and here [2].
In short, CBOR orders major types in such a way that if you use memcmp negative integers go as bigger values than positive integers. This breaks important invariant "memcmp ordering as value ordering" which is EXTREMELY useful. If you preserve that invariant then you can sort, index and navigate over compact opaque representation of values without their decoding, saving time and memory.