Are not there any satisfiable codecs? => https://en.wikipedia.org/wiki/Distinguished_Encoding_Rules#DER_encoding DER => https://en.wikipedia.org/wiki/Distinguished_Encoding_Rules#CER_encoding CER => https://datatracker.ietf.org/doc/html/rfc1014 XDR => https://www.JSON.org/json-en.html JSON => https://bsonspec.org/ BSON => https://msgpack.org/ MessagePack => https://datatracker.ietf.org/doc/html/rfc8949 CBOR => https://datatracker.ietf.org/doc/html/draft-mcnally-deterministic-cbor-11 dCBOR => http://cr.yp.to/proto/netstrings.txt Netstrings => https://wiki.theory.org/BitTorrentSpecification#Bencoding Bencode => https://en.wikipedia.org/wiki/Canonical_S-expressions Canonical S-expression | Schemaless | Simple | Deterministic | Streamable | Compact ASN.1 DER | N | N | Y | N | N ASN.1 CER | N | N | Y | Y | N XDR | N | Y | N | N | N JSON | Y | N | N | Y | N BSON | Y | Y | N | N | N MessagePack | Y | Y | N | N | Y CBOR | Y | N | N | Y | Y dCBOR | Y | N | Y | N | Y Netstrings | Y | Y | Y | N | ~ Bencode | Y | Y | Y | Y | ~ CSExp | Y | Y | Y | Y | ~ KEKS | Y | Y | Y | Y | Y | BigStr | BinStr | UTF8Str | Int | BigInt | List | Struct | Time ASN.1 DER | Y | Y | Y | Y | Y | Y | Y | Y ASN.1 CER | Y | Y | Y | Y | Y | Y | Y | Y XDR | N | Y | Y | Y | N | Y | Y | N JSON | Y | N | Y | Y | Y | Y | Y | N BSON | N | Y | Y | Y | N | Y | Y | Y MessagePack | N | Y | Y | Y | N | Y | Y | N CBOR | Y | Y | Y | Y | N | Y | Y | N dCBOR | Y | Y | Y | Y | N | Y | Y | N Netstrings | Y | Y | N | N | N | N | N | N Bencode | Y | Y | N | Y | Y | Y | Y | N CSExp | Y | Y | N | N | N | Y | N | N KEKS | Y | Y | Y | Y | Y | Y | Y | Y Note about CBOR: * Hardly you will find wide range of CBOR libraries supporting strict validation of deterministically encoded CBOR structures. * Tagged string/integer can not be taken as a viable first-class bigint/datetime data support, because many decoders do not support tags and won't be able to interpret/validate them. * Non-string map keys very complicates representation process for dynamically types languages.