Kush's Wiki

Protocol Buffers

commited date: 2024-03-02

protobuf

#Data Encoding

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

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

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

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

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