プロトコルバッファ Part1

プロトコルバッファ(protocol buffer、protobuf)は、Google社によって開発されたデータの交換や保存に用いられるシリアライズフォーマットである。プロトコルバッファ形式で記述されたデータは、XMLやJSONと同じように複数のプログラミング言語で共有することが可能で、拡張子.protoのファイルとして保存される。

公式のドキュメントによればプロトコルバッファはXMLと比較して以下の点で優れているとしている。

  • よりシンプル
  • 3倍から10倍サイズが小さい
  • 20倍から100倍速い
  • 曖昧性がより低い

プロトコルバッファの簡単な例

プロトコルバッファ・XML・JSONの比較を以下に載せる。

  • ユーザ定義型
  • required、optional修飾子

Protocol buffer:

person {
  required name: strings "Taro Tanaka"
  optional age: int32 18
  required email: strings "taro@email.com"
}

XML:

<person>
    <name>Taro Tanaka</name>
    <age>18</age>
    <email>taro@email.com</email>
</person>

JSON:

{
    "person": {
        "name": "Taro Tanaka",
        "age": 18,
        "email": "taro@email.com"
    }
}

参考