When I first read about protocol buffers, I was surprised at the similarity to ASN.1/BER: <a href="http://en.wikipedia.org/wiki/Basic_Encoding_Rules" rel="nofollow">http://en.wikipedia.org/wiki/Basic_Encoding_Rules</a><p>Basically, they're both nested type/length/value data formats with primitives for numerics, strings, etc with an human readable description language and toolsets to auto-generate language types + (de)serialisers etc.<p>Given that the ASN.1 toolset exists (even if a little dusty, SNMP and X.509 keep it alive) I don't see why google bothered to re-implement.<p>The FAQ: <a href="http://code.google.com/apis/protocolbuffers/docs/faq.html" rel="nofollow">http://code.google.com/apis/protocolbuffers/docs/faq.html</a> mentions ASN.1 but it's main argument (being tied to a particular form of RPC) doesn't apply to ASN.1.