Protobuf 3とは?
ぷろとこるばっふぁーずさん
Protobuf 3(Protocol Buffers 3)とは、Googleが開発した構造化データのシリアライゼーション形式の第3世代仕様です。
Protobuf 3(Protocol Buffers version 3)は、Googleが開発したデータシリアライゼーション形式「Protocol Buffers」の第3世代仕様です。テキストベースのJSONやXMLと異なり、バイナリ形式でデータをエンコードするため、サイズが小さく処理速度が速いという特徴があります。
Protobuf 2からの主な変更点として、フィールドのデフォルト値がすべてゼロ値(数値は0、文字列は空文字)に統一され、「required」フィールドが廃止されてすべてのフィールドがオプション扱いになりました。これにより前方・後方互換性の管理が簡略化されています。
Protobuf 3の主な特徴は次のとおりです。
- .protoファイルでデータ構造(メッセージ)を定義し、各言語向けのコードを自動生成
- Java、Python、Go、C++、JavaScript、Kotlinなど多言語対応
- 同じバイナリデータを異なる言語間でやり取り可能(言語間相互運用性)
- gRPCのデフォルトシリアライゼーション形式として採用
マイクロサービスアーキテクチャにおけるサービス間通信や、モバイルアプリとサーバー間のAPI通信など、パフォーマンスが重視される場面で広く活用されています。とくにgRPCフレームワークと組み合わせて使われることが多く、大規模分散システムの標準的な通信手段として定着しています。
使い方・例文
マイクロサービス構成のバックエンドでサービスAとサービスBが通信する際、Protobuf 3でメッセージ構造を定義してgRPCで呼び出すことで、JSONと比べて転送量を大幅に削減できます。
この用語をシェア
最終更新: