Protocol Buffers are language-neutral, platform-neutral extensible mechanisms for serializing structured data.

How it looks: (filed number + wiretype)(value) = ( field number << 3 | wiretype)(value) precise view.

There are three terms here:

Serializing structured data:

Suppose you have an object in Java: