Google and Facebook face off over open source server communications
Google has open sourced their Protocol Buffers project, a light-weight framework for exchanging information between servers. Protocol Buffers has been used within Google for a number of years to communicate between their internal systems, and already works with C++, Java and Python, but is, by design, language independent.
Kenton Varda of Google's Software Engineering Team described the problem Google faced, "We use literally thousands of different data formats to represent networked messages between servers, index records in repositories, geospatial datasets, and more. Most of these formats are structured, not flat. This raises an important question: How do we encode it all? ... XML is an extremely expensive proposition." Protocol Buffers is "at least a magnitude faster than XML" according to Varda. Protocol Buffers is licensed under the Apache License 2.0.
Facebook open sourced a similar framework, Thrift, a year ago and in June, the project moved to the Apache Incubator. Thrift supports a wider range of languages including Ruby, Erlang, C# and Perl. Protocol Buffers focusses on the encoding and decoding of inter-process messages. Thrift covers the same areas but also comes complete with interprocess communications code to handle the actual passing of messages between clients and servers.