Can Google Protocol Buffers be serialized/parsed between different languages?
<p>The <a href="https://developers.google.com/protocol-buffers/" rel="nofollow" title="official site">official site</a> as well as some other sources describe one of the benefits of Google Protocol Buffers as being highly inter-operable. I know the technology supports different language bindings out of the box, and many more as third party implementations, but what does that mean exactly? </p>

<p>Is my understanding correct in thinking that as long as I have a common schema file, I can run the protoc compiler and generate code for multiple languages, and then write a program in one language using the generated code, serialize some data to a file, and then parse it in another language in another program? </p>

<p>For example, could my client-side application running in Java serialize a Google Protocol Buffer and send it over the wire to a server implemented in C++ which can then parse it and use it readily as long as both sides were generated from the same schema file? </p>

<p>If that <strong>is</strong> correct, what allows that to happen - is it that their serialization/parsing logic adhere to a common/consistent wire format detailed <a href="https://developers.google.com/protocol-buffers/docs/encoding" rel="nofollow">here</a>?</p>