🍋
Menu
.protobuf Data

Protocol Buffers(Protobuf)

Protocol BuffersはGoogleの言語中立な構造化データシリアライゼーションフォーマットです。JSONやXMLよりもコンパクトで高速で、スキーマ定義(.protoファイル)を使用して数十のプログラミング言語で型安全なコードを生成します。

MIMEタイプ

application/x-protobuf

種類

バイナリ

圧縮

無劣化

メリット

  • + 10-100x smaller and faster than JSON/XML
  • + Schema-driven with generated type-safe code
  • + Backward-compatible schema evolution via field numbers
  • + Standard wire format for gRPC

デメリット

  • Not human-readable — binary format requires tooling
  • Requires .proto schema definition and code generation step
  • Not suitable for human-edited configuration files

.PROTOBUFを使うタイミング

gRPCサービス、内部マイクロサービス通信、高速でコンパクトなスキーマ駆動シリアライゼーションが必要なシステムにProtobufを使用してください。

技術的詳細

Protobufは番号付きフィールドを持つ.protoスキーマを使用し、言語固有のコードにコンパイルされます。バイナリワイヤーフォーマットは整数にvarintエンコーディング、文字列とネストメッセージに長さ付きエンコーディングを使用します。

歴史

Googleは内部でProtocol Buffersを開発し、2008年にオープンソースとしてリリースしました。Proto2がオプショナルフィールドを追加し、Proto3(2016年)がデフォルト値で言語を簡素化しました。gRPCはProtobufをデフォルトのワイヤーフォーマットとして使用します。

.PROTOBUFから変換

.PROTOBUFに変換

関連フォーマット

関連用語