Protocol Buffers

プロトコルバッファは、構造化データをシリアル化するための、言語に依存せず、プラットフォームに依存しない、拡張可能なメカニズムです。

プロトコルバッファとは?

プロトコルバッファは、Googleが開発した、言語に依存せず、プラットフォームに依存しない、構造化データをシリアル化するための拡張可能なメカニズムです。XMLに似ていますが、より小さく、高速で、シンプルです。データの構造を一度定義すれば、特別な生成されたソースコードを使用して、さまざまなデータストリームやさまざまな言語で、構造化データを簡単に書き込み、読み込むことができます。

お好きな言語を選択してください

プロトコルバッファは、C++、C#、Dart、Go、Java、Kotlin、Objective-C、Python、Ruby で生成されたコードをサポートしています。proto3 を使用すると、PHP でも作業できます。

実装例

edition = "2024";

message Person {
  string name = 1;
  int32 id = 2;
  string email = 3;
}

図1. プロト定義。

// Java code
Person john = Person.newBuilder()
    .setId(1234)
    .setName("John Doe")
    .setEmail("jdoe@example.com")
    .build();
output = new FileOutputStream(args[0]);
john.writeTo(output);

図2. 生成されたクラスを使用してデータを永続化する。

// C++ code
Person john;
fstream input(argv[1],
    ios::in | ios::binary);
john.ParseFromIstream(&input);
id = john.id();
name = john.name();
email = john.email();

図3. 生成されたクラスを使用して永続化されたデータを解析する。

どうやって始めるの?

  1. プロトコルバッファコンパイラをダウンロードしてインストールします。
  2. 概要を読みます。
  3. 選択した言語のチュートリアルを試してください。