Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
A protocol buffer is a platform- and language-neutral automated mechanism for serializing structured data. A protocol buffer is smaller, simpler and faster than XML. Initially developed at Google to deal with an index server response protocol, the company has provided a code generator under an open-source license for different languages. Protocol buffers are extremely useful for developing applications for storing data or for communication.
Currently, protocol buffers support generated code in programming languages such as C++, Java and Python. Protocol buffers are designed to be smaller and faster than XML and aim for both simplicity and performance. Similar to Microsoft Bond or Apache Thrift protocols, Protocol buffers offer a concrete RPC protocol stack to be used for defined services. A protocol buffer makes use of an interface description language that explains the data structure and an application which generates the source code based on that description. The source code is then used in parsing the bytes of the structured data.
There are several advantages of using protocol buffers over XML. Protocol buffers are simpler to use, and they are 3–10 times smaller than XML with 20–100 times the speed. Another advantage is that they are less ambiguous and can generate data access classes that are simple to develop programmatically.
There are few drawbacks associated with protocol buffers. Protocol buffers may not be an effective solution, especially for modeling a text-based document. Unlike XML, which is human readable and human editable, protocol buffers in their native state are not human readable or human editable. Protocol buffers do not have a self-describing capability like XML.
Protocol buffers are used in storage systems as well as in RPC systems.