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.
翻译:在本文中,我们介绍最近的进展,这些进展凸显了JSON兼容的二进制序列规格的特点; 我们通过涵盖1960年代至2000年代及以后各年份二进制序列规格的历史和演变情况,激发了讨论的动力; 我们分析了各行业最流行的连序规格的使用情况; 我们利用由化学驱动的一套非标准化的二进制编码技术(ASN.1、Apache Avro、Microsoft Bond、Cap'n Proto、FlatBuffers、Mon Bluffers和Apa Trift)和无化学选择的(BSON、CBOR、FlexBuffers、MessPack、Smiling和UBJJSON), 通过我们的分析,比较和对比其内部工作。 我们探索一套非标准化的二进制二进制组合编码技术(ZigZag整数编码和Lit Lit Endian Base 128 变长加码),这些技术对于理解各种JSONSON-Recomcom recion Recional化规格规格规格的规格规格规格(Jsalalalizalizizizizizizizizizizizizizizizizizization)和Jhing roducal 的精化过程的精化过程,我们用、我们用和序进制序进制成的逻辑解释的精制成的精制成的精制成的精制成的逻辑解释的逻辑解释。