コンテンツへスキップ
uencoder

Protocol Buffers

Protocol Buffersは、Googleが設計した言語非依存のバイナリシリアライズ形式である。.proto スキーマ定義を必要とし、JSON/XMLよりコンパクトで型安全である。

目的

スキーマが互換性を保証する、強く型付けされコンパクトで効率的な言語横断のデータ交換を提供する。

メカニズム

.proto のIDLがフィールド番号付きのメッセージ型を定義する。エンコード時、各フィールドは (field_number<<3 | wire_type) タグで始まり、整数はvarint、文字列とネストされたメッセージは長さプレフィックスを使う。未知のフィールドは前方互換性を保つ。proto3は構文を簡素化している。

ユースケース

  • gRPCの転送プロトコル
  • Google内部データの保存
  • モバイルAPI(帯域節約)
  • コンフィグと永続化

例

  • 入力
    message User { string name = 1; }
    Output
    Binary encoding

    Requires protoc compilation

よくあるエラー

Changing field numbers breaks compatibility
Once assigned, numbers must not be reused or changed

関連用語

関連ツール

References