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