  In this paper, we present the recent advances that highlight the
characteristics of JSON-compatible binary serialization specifications. We
motivate the discussion by covering the history and evolution of binary
serialization specifications across the years starting from 1960s to 2000s and
onwards. We analyze the use cases of the most popular serialization
specifications across the industries. Drawing on the schema-driven (ASN.1,
Apache Avro, Microsoft Bond, Cap'n Proto, FlatBuffers, Protocol Buffers, and
Apache Thrift) and schema-less (BSON, CBOR, FlexBuffers, MessagePack, Smile,
and UBJSON) JSON-compatible binary serialization specifications, we compare and
contrast their inner workings through our analysis. We explore a set of
non-standardized binary integer encoding techniques (ZigZag integer encoding
and Little Endian Base 128 variable-length integer encoding) that are essential
to understand the various JSON-compatible binary serialization specifications.
We systematically discuss the history, the characteristics, and the
serialization processes of the selection of schema-driven and schema-less
binary serialization specifications and we identify the challenges associated
with schema evolution in the context of binary serialization. Through
reflective exercise, we explain our observations of the selection of
JSON-compatible binary serialization specifications. This paper aims to guide
the reader to make informed decisions on the choice between schema-driven or
schema-less JSON-compatible binary serialization specifications.
