サードパーティ製ライブラリ:goprotobufとその先へ

Third-party libraries: goprotobuf and beyond by Andrew Gerrand

3月24日、Rob PikeはGoogleのデータ交換フォーマットであるProtocol Buffers(略してprotobufs)のGoバインディングであるgoprotobufを発表しました。この発表により、GoはC++、Java、Pythonと並んで公式のprotobuf実装を提供する言語の仲間入りを果たしました。既存のシステムとGoで構築されたシステムとの相互運用性を実現するうえで、重要な節目となる出来事です。

goprotobufプロジェクトは2つの部分から構成されています。1つは、コンパイル後にプロトコルバッファへアクセスし操作できるGoのソースファイルを生成する「プロトコルコンパイラのプラグイン」です。もう1つは、プロトコルバッファのエンコード(マーシャリング)、デコード(アンマーシャリング)、そしてアクセスのためのランタイムサポートを実装したGoパッケージです。

goprotobufを使うには、まずGoとprotobufの両方をインストールしておく必要があります。そのうえで、goinstallを使って「proto」パッケージをインストールできます。

goinstall goprotobuf.googlecode.com/hg/proto

続いて、protobufコンパイラのプラグインをインストールします。

cd $GOROOT/src/pkg/goprotobuf.googlecode.com/hg/compiler
make install

詳細についてはプロジェクトのREADMEファイルを参照してください。

これは、増え続けるサードパーティのGoプロジェクト一覧に新たに加わったものの一つに過ぎません。goprotobufの発表以降、XのGoバインディングは標準ライブラリから切り離されてx-go-bindingプロジェクトへ移管されましたし、Freetypeの移植版であるfreetype-goの開発も始まりました。その他の人気のあるサードパーティプロジェクトとしては、軽量なWebフレームワークであるweb.goや、GoのGTKバインディングであるgtk-goなどが挙げられます。

私たちは、オープンソースコミュニティによる他の有用なパッケージの開発を後押ししたいと考えています。もし何かに取り組んでいるのであれば、自分だけにとどめておかずに、メーリングリストgolang-nutsを通じてぜひ教えてください。

By Andrew Gerrand