Tuesday, January 20, 2015

BSON, Protocol Buffers, Cap’n Proto

BSON - Binary JSON
"BSON [bee · sahn], short for Bin­ary JSON, is a bin­ary-en­coded seri­al­iz­a­tion of JSON-like doc­u­ments. Like JSON, BSON sup­ports the em­bed­ding of doc­u­ments and ar­rays with­in oth­er doc­u­ments and ar­rays. BSON also con­tains ex­ten­sions that al­low rep­res­ent­a­tion of data types that are not part of the JSON spec. For ex­ample, BSON has a Date type and a BinData type.
BSON can be com­pared to bin­ary inter­change for­mats, like Proto­col Buf­fers. BSON is more "schema-less" than Proto­col Buf­fers, which can give it an ad­vant­age in flex­ib­il­ity but also a slight dis­ad­vant­age in space ef­fi­ciency (BSON has over­head for field names with­in the seri­al­ized data)."
{ Names in JSON format are repeated frequently, why not just keep them as pointers,
since the format is binary anyway? A bit more complexity for potentially more efficient storage. }

bsonspec.org/spec.html

bsonspec.org/implementations.html

James Newton-King - Json.NET 3.5 Release 6 – Binary JSON (BSON) support

c# - Protocol Buffers versus JSON or BSON - Stack Overflow

Comparison of data serialization formats - Wikipedia, the free encyclopedia

An overview of serialization formats. Numbers and anecdotes. | Daniel Lobato

Comparing Protobuf, JSON, BSON, XML with .NET for File streams | Software Engineering
serializationTests04serializationTests03

{ Given that (Google's default data format) ProtoBuf is significantly more efficient,
it is a bit strange there are no popular databases based on this, like MongoDB based on BSON }

(Google's) F1: A Distributed SQL Database That Scales

(Facebook created) Apache Thrift - Home

Protocol Buffers — Google Developers

Protocol Buffers - Wikipedia, the free encyclopedia

google/protobuf @ GitHub

c# - How to choose between protobuf-csharp-port and protobuf-net - Stack Overflow

protobuf-csharp-port - Google's Protocol Buffers project, ported to C# - Google Project Hosting

protobuf-net - Fast, portable, binary serialization for .NET - Google Project Hosting

Code, code and more code.: Efficiency: the work you don’t do…

Cap'n Proto: Introduction
"Cap’n Proto is an insanely fast data interchange format and capability-based RPC system. Think JSON, except binary. Or thinkProtocol Buffers, except faster. In fact, in benchmarks, Cap’n Proto is INFINITY TIMES faster than Protocol Buffers."


"Cap’n Proto gets a perfect score because there is no encoding/decoding step."

Code, code and more code.: Efficiency: the work you don’t do…
Marc Gravell, porting Cap'n Proto to C#image
"this format works both on disk and for live interactive objects, so the disk format is exactly the in-memory format. Zero processing."

Performance Test – BinaryFormatter vs Protobuf-Net | theburningmonk.com
image

Encoding - Protocol Buffers — Google Developers

No comments: