注: このサイトは非推奨になりました。このサイトは 2023 年 1 月 31 日を過ぎると停止され、トラフィックは https://protobuf.dev の新しいサイトにリダイレクトされます。その間、更新は protobuf.dev のみに行われます。

C++ API

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

パッケージ

I/O に使用する補助クラス。
ユーティリティ クラス。
プロトコル バッファ コンパイラの実装。

google::protobuf

ファイル

このファイルでは、割り当てのパフォーマンスを向上させるために Arena アロケータを定義します。
このファイルには、プロトコル メッセージのタイプを記述するクラスが含まれています。
記述子のプロトコル バッファ表現。
記述子のデータベースを操作するためのインターフェース。
コンパイル時にわからないタイプをエミュレートできる Message の実装を定義します。
このファイルでは、protobuf マップをサポートするためのマップコンテナとヘルパーを定義します。
非ライト プロトコル メッセージ オブジェクトによって実装される抽象インターフェースである Message を定義します。
すべての(ライトと非ライト)プロトコル メッセージ オブジェクトによって実装される抽象インターフェース、MessageLite を定義します。
RepeatedFieldRepeatedPtrField は、生成されたプロトコル メッセージ クラスで繰り返しフィールドを操作するために使用されます。
非推奨: このモジュールは、proto2 RPC サービスの基礎となる抽象インターフェースを宣言します。
プロトコル メッセージを人間が判読できるテキストベースの形式で出力、解析するユーティリティ。
プロトコル メッセージの解析中に確認された認識されないフィールドをトラッキングするためのクラスが含まれています。

google::protobuf::io

I/O に使用する補助クラス。

プロトコル バッファ ライブラリは、このパッケージ内のクラスを使用して、I/O の処理や RAW バイトのエンコード/デコードを行います。ほとんどのユーザーは、このパッケージを扱う必要がありません。ただし、独自の I/O 抽象化と連携するようにシステムを調整したい場合(たとえば、一時的なバッファを必要とせずにプロトコル バッファを別の種類の入力ストリームから読み込めるようにする場合)は、よく確認する必要があります。

ファイル

このファイルには、ZerodInputStream クラスと CodedOutputStream クラスが含まれています。それぞれ ZeroCopyInputStream クラスと ZeroCopyOutputStream クラスをラップして、さまざまな形式の個々のデータを読み書きできるようにします。
ZeroCopyOutputStream にテキストを書き込むためのユーティリティ クラス。
ZeroCopyInputStream からトークン化されたテキストを解析するためのクラス。
このファイルには、ZeroCopyInputStream インターフェースと ZeroCopyOutputStream インターフェースが含まれています。これらは、プロトコル バッファとの間の読み書きが可能な抽象 I/O ストリームを表します。
このファイルには、zero_copy_stream.h で定義されたインターフェースの一般的な実装が含まれています。この実装には lite 以外の protobuf ライブラリのみが含まれています。
このファイルには、zero_copy_stream.h で定義されたインターフェースの一般的な実装が含まれています。これらは「lite」版の protobuf ライブラリに含まれています。

google::protobuf::util

ユーティリティ クラス。

このパッケージには、メッセージ比較、JSON 変換、よく知られている型など、さまざまなユーティリティが含まれています。

ファイル

フィールド比較のクラスを定義します。
FieldMask の既知の型のユーティリティを定義します。
protobuf バイナリ形式と proto3 JSON 形式に変換するユーティリティ関数。
このファイルでは、プロトコル メッセージを比較するための静的メソッドとクラスを定義します。
Timestamp と Duration のよく知られた型のユーティリティを定義します。
Any メッセージの TypeResolver を定義します。
TypeResolver のユーティリティを定義します。

google::protobuf::compiler

プロトコル バッファ コンパイラの実装。

このパッケージには、.proto ファイルの解析とそれに基づくコードの生成用のコードが含まれています。このパッケージに関心がある理由は 2 つあります。

  • 実行時に .proto ファイルを解析したいと考えています。この場合は importer.h をご覧ください。この機能は広く利用されているため、libprotobuf ベース ライブラリに含まれています。libprotoc にリンクする必要はありません。
  • さまざまなタイプのコード(たとえば公式のコンパイラでサポートされていない別の言語のコード)を生成するカスタム プロトコル コンパイラを記述したい場合、この目的のために、command_line_interface.h には完全なコンパイラ フロントエンドが提供されるので、CodeGenerator のカスタム実装と簡単な main() 関数を記述するだけで済みます。独自の言語に加えて、コンパイラで公式言語をサポートすることもできます。この機能は、カスタム コンパイラを記述する場合にのみ役立つため、「libprotoc」という別のライブラリに含まれているため、これをリンクする必要があります。

ファイル

言語固有のコード生成ツールごとに実装される抽象インターフェースを定義します。
プロトコル コンパイラ フロントエンドを実装し、他の言語をサポートするために記述されたカスタム コンパイラで再利用できるようにします。
このファイルは .proto ファイル パーサーの公開インターフェースです。
.proto ファイルの解析を FileDescriptorProtos に実装します。
C++ で作成された protoc コード生成プラグインのフロントエンド。
proto プラグイン向け API。
指定された .proto ファイル用の C++ コードを生成します。
指定された .proto ファイル用の C# コードを生成します。
記述子を対応する C# クラスの完全修飾名にマッピングするメカニズムを提供します。
指定された .proto ファイル用の Java コードを生成します。
記述子を対応する Java クラスの完全修飾名にマッピングするメカニズムを提供します。
指定した .proto ファイル用の JavaScript コードを生成します。
指定された .proto ファイルの ObjectiveC コードを生成します。
ObjectiveC コードを生成するためのヘルパー関数。
指定された .proto ファイル用の Python コードを生成します。
指定された .proto ファイル用の Ruby コードを生成します。