Google has open-sourced its protocol buffers, the company's lingua franca for encoding various types of data, in order to set the stage for a wave of new releases, according to official company blog posts and documents.
"Practically everyone inside Google" uses protocol buffers, states a FAQ page. "We have many other projects we would like to release as open source that use protocol buffers, so to do this, we needed to release protocol buffers first."
Google uses "thousands of different data formats to represent networked messages between servers, index records in repositories, geospatial datasets, and more," wrote Kenton Varda, a member of Google's software engineering team, in a blog post. "Most of these formats are structured, not flat. This raises an important question: How do we encode it all?"
The ubiquitous XML (extensible markup language) is not efficient enough for Google's data-sharing needs, according to Varda: "When all of your machines and network links are running at capacity, XML is an extremely expensive proposition."
With protocol buffers, "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," according to a documentation page . "You can even update your data structure without breaking deployed programs that are compiled against the 'old' format."
Protocol buffers are three to 10 times smaller and 20 to 100 times faster than XML, according to Google.
But XML has some advantages for certain tasks, according to the documentation: "Protocol buffers would not be a good way to model a text-based document with markup (e.g. HTML), since you cannot easily interleave structure with text. In addition, XML is human-readable and human-editable; protocol buffers, at least in their native format, are not."
Google has prepared a download page that contains protocol buffer compilers for Java, C++ and Python.
Latest on C/C++
- The A-Z of Programming Languages: F#
- OpenCL technology may speed up 'Snow Leopard'
- Intel pushing parallelism to developers
- The A-Z of Programming Languages: Perl
- A future without programming
- Microsoft, Novell eye Moonlight beta, system management
- Coverity assists software architects
- World without Linux
- Multicore: New chips mean new challenges for developers
- Microsoft advances embedded apps
Development Essentials
- Top 10 wicked cool algorithms
- Facebook app verification fee draws criticism
- Microsoft's openness stressed
- Yahoo's developer platform to launch this week
- Microsoft starts new developer portal
- Google API allows creating apps that can track laptops
- PHP, JavaScript, Ruby, Perl, Python, and Tcl Today: The State of the Scripting Universe
- Analyst: In-house app development fraught with waste
- Is unit testing doomed?
- Open source still the best way to develop software
TechWorld Jobs (beta)
Whitepapers
- Email Archiving Implementation: Five Costly Mistakes to Avoid
- Discover the advantages of an open architecture multi-vendor network solution
- Solve Exchange Storage Problems Once and For All: A New Approach without Stubs or Links
- How to Beef Up Your Sales Pipeline
- Delivering the Power of Choice with Microsoft Dynamics CRM
TechWorld Blogs
-

TalkingTech
The view from the top of IT with TechWorld Editor Rodney Gedda
-

Entrenched
Cooking up better code, IDG's developers reveal some of their secrets
-

Broadband Voice
Darren Pauli digs in from the front line of Australia's broadband battleground
Recent blog posts
- Telstra kicked out of NBN process
- Linux on the iPhone won’t change the world - yet
- A Novell approach to business
- An open storage stack? I like the sound of that
- The mobile clone wars: fighting for a better phone experience
- Stopping the "Clean Feed"
- Identifying web platforms
- Clean Feed ‘not technically possible’
- No Clean Feed - well duh!
- Conroy's content cops still on the cards
Recent comments
- video converter os x
8 hours 37 min ago - video converter os x
8 hours 42 min ago - video converter os x
8 hours 50 min ago - video converter os x
8 hours 50 min ago - video converter os x
8 hours 51 min ago - video converter os x
8 hours 51 min ago - video converter os x
8 hours 57 min ago - video converter os x
8 hours 58 min ago - video converter os x
8 hours 59 min ago - video converter os x
9 hours 1 min ago - video converter os x
9 hours 2 min ago - video converter os x
9 hours 4 min ago - video converter os x
9 hours 6 min ago - video converter os x
9 hours 8 min ago - video converter os x
9 hours 11 min ago - video converter os x
9 hours 12 min ago - video converter os x
9 hours 13 min ago - video converter os x
9 hours 14 min ago - video converter os x
9 hours 15 min ago - video converter os x
9 hours 15 min ago







