Protobuf

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Links)
m (Add Kaitai Struct schema)
 
Line 3: Line 3:
 
|subcat=Serialization
 
|subcat=Serialization
 
|extensions={{ext|proto}}, {{ext|pb}}
 
|extensions={{ext|proto}}, {{ext|pb}}
 +
|kaitai struct=google_protobuf
 
}}
 
}}
 
'''Protobuf''' (Protocol Buffers) is a Google system for serialization of data to/from binary files. It is used by creating data structure definitions (known as "messages", since they define what data is sent or received as a message between processes using this format) in .proto files, which have a syntax resembling programming languages of the [[C]] family, and then compiling them using a Protobuf compiler targeting a particular programming language (e.g., [[C++]]). This generates library routines which convert data of that particular structure to and from streams of binary data that can be read from and written to files or transmitted over networks. This is faster and more compact than using other popular techniques such as [[XML]]. The .pb extension is used for raw binary streams of this format.
 
'''Protobuf''' (Protocol Buffers) is a Google system for serialization of data to/from binary files. It is used by creating data structure definitions (known as "messages", since they define what data is sent or received as a message between processes using this format) in .proto files, which have a syntax resembling programming languages of the [[C]] family, and then compiling them using a Protobuf compiler targeting a particular programming language (e.g., [[C++]]). This generates library routines which convert data of that particular structure to and from streams of binary data that can be read from and written to files or transmitted over networks. This is faster and more compact than using other popular techniques such as [[XML]]. The .pb extension is used for raw binary streams of this format.

Latest revision as of 17:58, 26 December 2024

File Format
Name Protobuf
Ontology
Extension(s) .proto, .pb
Kaitai Struct Spec google_protobuf.ksy

Protobuf (Protocol Buffers) is a Google system for serialization of data to/from binary files. It is used by creating data structure definitions (known as "messages", since they define what data is sent or received as a message between processes using this format) in .proto files, which have a syntax resembling programming languages of the C family, and then compiling them using a Protobuf compiler targeting a particular programming language (e.g., C++). This generates library routines which convert data of that particular structure to and from streams of binary data that can be read from and written to files or transmitted over networks. This is faster and more compact than using other popular techniques such as XML. The .pb extension is used for raw binary streams of this format.

Google uses it heavily in its internal protocols and file formats. It is also used (compressed under a variant of Snappy) in the IWA format used by Apple as part of the iWork format used in Pages, Numbers, and Keynote.

[edit] Links

[edit] Commentary and criticism

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox