読み方 : プロトコルバッファ

Protocol Buffers【protobuf】

概要

Protocol Buffersとは、米グーグル(Google)社が開発したデータシリアライズ形式、およびその処理系構造化されたデータバイナリ形式に変換してネットワーク通信やファイル保存に利用する。JSONXMLと同じ用途で使われるが、データサイズが小さく処理速度が速い。
Protocol Buffersのイメージ画像

Protocol Buffersでは、送受信するデータの構造をあらかじめ定義ファイルに記述する。この定義ファイルには、各フィールドの名前、型、識別番号を記載する。

定義ファイルを専用のコンパイラ(protoc)で処理すると、指定したプログラミング言語­向けのソースコードが自動生成される。対応言語としてJavaPython、C++言語、Go言語などがある。開発者は生成されたコードを利用して、通常の変数やオブジェクトを扱う感覚でデータの読み書きを行える。バイナリ形式の内部構造を意識する必要はない。

データバイナリ形式で表現されるため、人が内容を直接読み取ることはできない。同じ内容をJSONXMLなどテキストベースの形式で表現した場合よりもデータ量が小さくなり、ネットワーク帯域や記憶領域の節約に繋がる。不要な文字情報を含まないため、解析や生成にかかる処理時間も短縮できる場合が多い。

フィールドに識別番号を付与する仕組みにより、互換性を保ちながらデータ構造を変更することができる。既存の番号を維持したまま新しいフィールドを追加すれば、古いプログラムは未知のフィールドを無視し、新しいプログラムは追加されたフィールドを利用できる。不要になったフィールドを削除する際には識別番号を再利用しない運用が一般的であり、将来の互換性も維持しやすくなっている。

定義ファイルデータ形式の共通仕様として機能するため、異なるプログラミング言語や実行環境の間でも同じ構造のデータをやり取りできる。複数のサービスが頻繁に通信するマイクロサービスアーキテクチャとの親和性が高く、同社が開発したRPCフレームワークの「gRPC」はProtocol Buffersをデフォルトのデータ形式として採用している。もともと同社の社内システム向けに開発され、2008年にオープンソースとして公開された。

(2026.7.8更新)
 
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。