Thursday, August 21, 2008

Google Protocol Buffers - Kind of Like the Glue for Data Streams in the Cloud

This is something new and interesting from Google, Protocol Buffers. Here is the overview of what this technology is:

Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages – Java, C++, or Python.

For more information read the Protocol Buffers Overview page. Why not just use XML? Here are some compelling reasons to consider Protocol Buffers instead of XML:

Protocol buffers have many advantages over XML for serializing structured data. Protocol buffers:

  • are simpler
  • are 3 to 10 times smaller
  • are 20 to 100 times faster
  • are less ambiguous
  • generate data access classes that are easier to use programmatically
The features I like are simpler, smaller, faster, less ambigous and easier to use. I am sold. Now the real question is, does this stuff work in the real world and can it be applied in a proof of concept or experiment? That is something that is to be determined.

This stuff does look interesting. For alternative viewpoints here is one from InfoQ, Google Introduces Binary Encoding Format: Protocol Buffers, which has a lot of good links to various blogs and responses to Google's PBs. Facebook's Thrift is a competing technology.

No comments: