その他の言語
現在のリリースには C++、Java、Go、Ruby、C#、Python 用のコンパイラと API が含まれていますが、コンパイラコードは他の言語のサポートを簡単に追加できるように設計されています。C、Haskell、Perl、Rust など、Protocol Buffers に新しい言語実装を追加するプロジェクトがいくつか進行中です。
私たちが把握しているプロジェクトへのリンクのリストについては、サードパーティアドオンの Wiki ページを参照してください。
コンパイラプラグイン
Protocol Buffers コンパイラである protoc
は、プラグインを介して新しい言語をサポートするように拡張できます。プラグインは、標準入力から CodeGeneratorRequest
プロトコルバッファを読み取り、標準出力に CodeGeneratorResponse
プロトコルバッファを書き込むだけのプログラムです。これらのメッセージタイプは plugin.proto
で定義されています。すべてのサードパーティのコードジェネレータはプラグインとして作成することをお勧めします。これにより、すべてのジェネレータが一貫したインターフェースを提供し、単一のパーサ実装を共有できるようになります。
プラグインはどのプログラミング言語でも記述できますが、Google が所有するプラグインは C++ で記述されています。独自のプラグインを作成する場合、C++ を使用すると、それらの例に従ってユーティリティを再利用するのが最も簡単かもしれません。
さらに、プラグインは他のコードジェネレータによって生成されたファイルにコードを挿入することができます。これに関する詳細は、plugin.proto
の「挿入ポイント」に関するコメントを参照してください。これは、例えば、特定の RPC システムに合わせた RPC サービスコードを生成するプラグインを作成するために使用できます。各言語で生成されたコードのドキュメントを参照して、どのような挿入ポイントが提供されているかを確認してください。