他の言語

protoc (Protocol Buffers コンパイラ) は、プラグインを介して新しい言語をサポートするように拡張できます。

現在のリリースには C++、Java、Go、Ruby、C#、Python 用のコンパイラと API が含まれていますが、コンパイラコードは他の言語のサポートを簡単に追加できるように設計されています。 Protocol Buffers に新しい言語実装を追加するプロジェクトがいくつか進行中であり、C、Haskell、Perl、Rust などが含まれます。

私たちが知っているプロジェクトへのリンクのリストについては、サードパーティ製アドオンの Wiki ページ を参照してください。

コンパイラプラグイン

protoc (Protocol Buffers コンパイラ) は、プラグインを介して新しい言語をサポートするように拡張できます。 プラグインは、標準入力から CodeGeneratorRequest プロトコルバッファを読み取り、標準出力に CodeGeneratorResponse プロトコルバッファを書き込むだけのプログラムです。 これらのメッセージタイプは plugin.proto で定義されています。 すべてのサードパーティ製コードジェネレータはプラグインとして記述することを推奨します。これにより、すべてのジェネレータが一貫したインターフェースを提供し、単一のパーサー実装を共有できるようになります。

プラグインは任意のプログラミング言語で記述できますが、Google が所有するプラグインは C++ で記述されています。 独自のプラグインを作成する場合、これらの例に従ってユーティリティを再利用できるように、プラグインに C++ を使用するのが最も簡単な方法である場合があります。

さらに、プラグインは、他のコードジェネレータによって生成されたファイルにコードを挿入できます。 これの詳細については、plugin.proto の「挿入ポイント」に関するコメントを参照してください。 これは、たとえば、特定の RPC システムに合わせて調整された RPC サービスコードを生成するプラグインを作成するために使用できます。 各言語で生成されたコードのドキュメントを参照して、提供されている挿入ポイントを確認してください。