本文へスキップ

Protocol Buffersとは?

ぷろとこるばっふぁーず

Protocol Buffersとは、Googleが開発した言語・プラットフォーム依存の高効率なデータシリアライズフォーマットおよびインタフェース定義言語です。

Protocol Buffers(プロトコルバッファーズ、略称:protobuf)は、Googleが社内向けに開発し2008年にオープンソース化したデータシリアライズフォーマットです。構造化データを効率よくバイナリ形式にエンコード・デコードするための仕組みと、データ構造を定義するためのインタフェース定義言語(IDL)から構成されます。

使い方は、.protoファイルにデータ構造(メッセージ型)をスキーマとして定義し、protobufコンパイラ(protoc)で各言語向けのコードを自動生成します。生成されたコードを使ってデータのシリアライズ(バイナリ変換)とデシリアライズ(復元)を行います。

Protocol BuffersがJSONやXMLと比べて優れている点は以下のとおりです。

  • サイズ:バイナリ形式のため、同じデータをJSONより大幅に小さく表現できる
  • 速度:パースが高速で、大量データの処理に向く
  • 型安全性:スキーマにより型が保証され、互換性のない変更をコンパイル時に検出できる
  • 多言語対応:C++・Java・Python・Go・Ruby・C#など多数の言語で利用可能

Protocol BuffersはGoogleのgRPCフレームワークのデータフォーマットとして採用されており、マイクロサービス間の通信やAPIの設計でよく使われます。スキーマを先に定義する「スキーマファースト」な開発スタイルを促進し、サービス間の契約を明確にするという効果もあります。

使い方・例文

マイクロサービス間でgRPCを使って通信する際、.protoファイルでリクエスト・レスポンスの構造を定義し、自動生成コードでシリアライズ・デシリアライズする場面で登場します。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語