その他の言語

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

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

私たちが把握しているプロジェクトへのリンクの一覧については、サードパーティ製アドオンのWikiページをご覧ください。

コンパイラプラグイン

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

プラグインはどのプログラミング言語でも記述できますが、Google が所有するプラグインは C++ で記述されています。独自のプラグインを作成する場合、C++ を使用すると、これらの例に従い、ユーティリティを再利用できるため、最も簡単かもしれません。

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