Protocol buffers
Protocol buffers (called protobuf
in code) are a binary serialization format that is very small and extremely quick to encode and decode. You describe data structures in an abstract way using a declarative mini language, and generate source code (in a variety of languages) to make reading and writing the data easy for users.
You can think of protocol buffers as a modern alternative to XML, except that the definition of the data structure is separated from the content, and the content is in a binary format rather than text.
It's clear to see the benefits when you look at a real example. If we wanted to represent a person with a name in XML, we could write this:
<person> <name>MAT</name> </person>
This takes up about 30 bytes (discounting whitespace). Let's see how it would look in JSON:
{"name":"MAT"}
Now we're down to 14 bytes, but the structure is still embedded in the content (the name field is spelled out along with the value).
The equivalent...