本文へスキップ

Protobuf 3とは?

ぷろとこるばっふぁーずさん

Protobuf 3(Protocol Buffers 3)とは、Googleが開発した構造化データシリアライゼーション形式の第3世代仕様です。

Protobuf 3(Protocol Buffers version 3)は、Googleが開発したデータシリアライゼーション形式「Protocol Buffers」の第3世代仕様です。テキスベースJSONXMLと異なり、バイナリ形式でデータをエンコードするため、サイズが小さく処理速度が速いという特徴があります。

Protobuf 2からの主な変更点として、フィールドのデフォルト値がすべてゼロ値(数値は0、文字列は空文字)に統一され、「required」フィールドが廃止されてすべてのフィールドがオプション扱いになりました。これにより前方・後方互換性の管理が簡略化されています。

Protobuf 3の主な特徴は次のとおりです。

  • .protoファイルでデータ構造(メッセージ)を定義し、各言語向けのコードを自動生成
  • Java、Python、Go、C++、JavaScript、Kotlinなど多言語対応
  • 同じバイナリデータを異なる言語間でやり取り可能(言語間相互運用性)
  • gRPCのデフォルトシリアライゼーション形式として採用

マイクロサービスアーキテクチャにおけるサービス間通信や、モバイルアプリとサーバー間のAPI通信など、パフォーマンスが重視される場面で広く活用されています。とくにgRPCフレームワークと組み合わせて使われることが多く、大規模分散システムの標準的な通信手段として定着しています。

使い方・例文

マイクロサービス構成のバックエンドでサービスAとサービスBが通信する際、Protobuf 3でメッセージ構造を定義してgRPCで呼び出すことで、JSONと比べて転送量を大幅に削減できます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語