本文へスキップ

プロトコルバッファとは?

ぷろとこるばっふぁ

プロコルバッファとは、Googleが開発した、データをコンパクトなバイナリ形式に変換してシステム間でやり取りするための仕組みです。

プロコルバッファProtocol Buffers、略称:protobuf)は、Googleが開発したデータシリアライズ形式です。構造化されたデータを小さなバイナリ形式にエンコードすることで、JSONやXMLと比較して高速かつコンパクトなデータ交換を実現します。

利用の流れはシンプルです。まず.protoファイルと呼ばれるスキーマファイルにデータ構造を定義します。次にprotocコンパイラがそのスキーマから各言語(Go・Python・Java・C++・Rustなど)のコードを自動生成します。生成されたコードを使うと、データのシリアライズ(エンコード)とデシリアライズ(デコード)を簡潔に記述できます。

プロトコルバッファの主な特徴は次のとおりです。

  • 高速・軽量:バイナリ形式のため、テキスト形式のJSONより数倍〜十数倍コンパクトになる場合があります。
  • 型安全:スキーマで型が厳密に定義されるため、型ミスによるバグを防ぎやすいです。
  • 多言語対応:同じスキーマから複数言語のコードを生成でき、異なる言語のサービス間通信に適しています。
  • 後方互換性:フィールドに番号タグを付けることで、既存クライアントを壊さずにスキーマを拡張できます。

プロトコルバッファはGoogleのgRPCフレームワークのデフォルトシリアライザとして採用されており、マイクロサービス間のAPIやモバイルアプリとバックエンドの通信など、パフォーマンスが重視される場面で広く使われています。

使い方・例文

マイクロサービス構成のシステムでサービスAとBが頻繁にデータをやり取りする場合、JSON代わりにプロトコルバッファを使うことで通信量と処理時間を大幅に削減できます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語