Protocol Buffers
↑ "Protocol buffers provide ... mechanism for serializing structured data" Google. Overview. Protocol Buffers. 2022-12-30閲覧.
1 2 3 "Protocol buffers are a combination of the definition language ... , the code that the proto compiler generates to interface with data, language-specific runtime libraries, and the serialization format" Google. Overview. Protocol Buffers. 2022-12-30閲覧.
↑ Developer Guide - Protocol Buffers — Google Developers
↑ Third-Party Add-ons for Protocol Buffers
↑ "Scalar Value Types A scalar message field can have one of the following types" Google. Language Guide (proto3). Protocol Buffers. 2022-12-30閲覧.
↑ Kenton Varda. “Steve Vinoskiへの返事(英語)”. 2008年7月14日閲覧。
例として、「example.proto」は「example.pb.cc」および「example.pb.h」を生成し、この中には「example.proto」で定義されたメッセージおよびサービスのためのC++クラスが定義されている。
Protocol Buffersによりあらゆる種類のフォーマットをシリアライズすることができるようになる。公式にサポートされた実装では完全なリフレクションインタフェースが利用可能であり、XMLやJSONと同じくらい容易にシリアライズ機構を整備することができる。
Protocol Buffersの主な目的は「ネットワーク上の通信を高速化すること」ではあるが、その自己記述性の低さに起因するシンプルさおよび高速さによりC++クラスおよび構造体を用いたデータ格納からの有力な置き換え手段としても用いられている。
現在、Googleにより開発されている。オリジナルのGoogle実装はC++、Java、Pythonによるものであり、フリーソフトウェアとしてオープンソースライセンスで公開されている。また、ActionScript・C言語・C#・Clojure・Common Lisp・D言語・Erlang・Go・Haskell・JavaScript・Lua・MATLAB・Mercury・Objective-C・OCaml・Perl・PHP・R言語・Ruby・Scala・.NET Frameworkなどの実装が利用可能である。