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はとりあえず動くので良い。