Protocol Buffers

Googleが開発した言語非依存・プラットフォーム非依存の構造化データシリアライズ形式(通称protobuf)。XMLやJSONのようにデータをやり取りするための仕組みだが、より小さく・速く・シンプルであることを目指している。

仕組み

  • .protoファイルに、言語非依存のインターフェース定義言語(IDL)でメッセージのスキーマを定義する。
  • protocコンパイラが.protoから各言語向けのコードを生成し、そのコードを使ってシリアライズ/デシリアライズを行う。
  • シリアライズ結果はテキストではなくバイナリ形式で、XML/JSONのようなテキストベース形式に比べてコンパクトかつシリアライズ/デシリアライズが高速。
  • C++, C#, Dart, Go, Java, Kotlin, Objective-C, Python, Rust, Ruby など多数の言語向けにコード生成をサポートする(proto3ではPHPも追加)。

用途

Google社内でサーバー間通信・ディスクへのデータ永続化の両方で最も広く使われているデータ形式。gRPCはデフォルトのIDL兼シリアライズ形式としてProtocol Buffersを採用しており、ONNXもモデルのシリアライズ形式としてProtocol Buffersを使っている。

出典

#protocol #serialization

作成日時: 2026-08-15 15:14 / 更新日時: 2026-08-15 15:14