title: Performant Entity Serialization: BSON vs MessagePack (vs JSON)
body: <p>Recently I've found <em><strong><a href="http://www.msgpack.org" rel="noreferrer">MessagePack</a></strong></em>, an alternative <strong>binary</strong> serialization format to Google's <a href="https://developers.google.com/protocol-buffers/" rel="noreferrer">Protocol Buffers</a> and <a href="http://json.org/" rel="noreferrer">JSON</a> which also outperforms both.</p>
  <p>Also there's the <a href="http://bsonspec.org/" rel="noreferrer">BSON</a> serialization format that is used by MongoDB for storing data.</p>
  <p>Can somebody elaborate the <em>differences and the dis-/advantages of BSON vs MessagePack</em>?</p>
  <hr />
  <p>Just to complete the list of performant binary serialization formats: There are also <a href="http://blog.golang.org/2011/03/gobs-of-data.html" rel="noreferrer"><strong>Gobs</strong></a> <strike>which are going to be the successor of Google's Protocol Buffers</strike>. However <strike>in contrast to all the other mentioned formats those are not language-agnostic and rely on <a href="http://golang.org/pkg/reflect/" rel="noreferrer">Go's built-in reflection</a></strike> there are also Gobs libraries for at least on other language than Go.</p>