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ファイルでリクエスト・レスポンスの構造を定義し、自動生成コードでシリアライズ・デシリアライズする場面で登場します。
この用語をシェア
最終更新: