トップ «前の日記(2015-06-30) 最新 次の日記(2015-07-31)» 編集

Route 477



2015-07-24

[golang] gbを使ってみた

ちょっとMQTT Brokerのベンチマークをしたかったのだけど、Goでそういうものを作ってる人がいたので、試してみることにした。

しかしPaho(MQTTのライブラリ)のAPIがgit masterで変わってしまっているらしく、そのままでは動かなかった。

そういえばGoのパッケージマネージャの話を読んだ気がするな…。そうこれこれ。

とりあえずgodepというのを試そうとしたのだけど、directory "(略)" is outside source root "src" というエラーが出て動かなかったので、gbの方を試す。

gb: http://getgb.io/

go get github.com/constabulary/gb/... でインストールするらしい。「...」までがコマンド。どういう意味なんだろ。

gbは自分のコードはsrc/以下に置かないといけないらしいので、srcディレクトリを作ってmqtt-bench.goをそこに入れる。と思ったけど直下じゃだめらしいのでsrc/mqtt-bench/mqtt-bench.goにした。

vendoringしたいコードはvendor/src/以下に置く。gb get ...みたいにして取ってこれたら便利なんだけど、チラ見した範囲では手作業以外の方法は見当たらなかった。

ということでPahoの古いやつ(0.9.1)のzipをダウンロードして、以下の場所に置く。

./vendor/src/git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.golang.git

これでgb build allしてみたが、パッケージが足りないというエラーが出た。~/.go/src/code.google.com/からそれっぽいのを探して以下にそれぞれコピー。

./vendor/src/code.google.com/p/go.net/websocket
./vendor/src/code.google.com/p/go-uuid

これでgb build allすると、./bin/mqtt-benchという実行ファイルができた。よしよし。

まとめ

タグ指定くらいはできないと辛い。Go 1.5に期待したい。gbはとりあえず動くので良い。