Kush's Wiki

Protocol Buffers

commited date: 2025-04-01

Protobuf

#API Architecture #Programming

Googleによって開発されたインターフェース定義によるバイナリエンコーディングライブラリ。インターフェース定義言語に分類される

フィールド名のエイリアスとして扱うフィールドタグ(数値)によってバイトを節約している。

フィールドタグによる互換性に関する仕様の要点は以下。

  • フィールドの追加
    • 未使用のタグ番号を割り当てることで前方互換あり
    • 必須でなければ後方互換あり
  • フィールドの変更
    • フィールド名の変更は前方・後方互換あり
  • フィールドの削除
    • 追加時の前方・後方と逆

またProtocol Buffersはフィールド制約である optionalrepeated 間の互換性にも対応している。これはバイナリ上でフィールド情報を単純に複数回並べているため。