[groonga-dev,01119] [ANN] gqtp 1.0.0

Back to archive index

Kouhei Sutou kou****@clear*****
2012年 11月 29日 (木) 12:59:02 JST


須藤です。

今日は年に一度のいい肉の日ですね!

groongaが使っている独自プロトコル「GQTP」をRubyで実装したラ
イブラリgqtp 1.0.0をリリースしました!

  https://github.com/ranguba/gqtp

ちょっと、まだ荒削りなのですが、GQTPクライアント、GQTPサー
バー、GQTPプロキシとして使える機能が揃っています。また、API
は非同期で使えるようなAPIにしているので、同時に複数の接続を
受け付けるような使い方にも対応できます。

例えば、こんな感じになります。

GQTPクライアントとして使う:

  require "gqtp"

  client = GQTP::Client.new(:address => "192.168.0.1", :port => 10041)
  request = client.send("status") do |header, body|
    p body # => "{\"alloc_count\":163,...}"
  end
  request.wait

GQTPサーバーとして使う:

  require "gqtp"

  server = GQTP::Server.new(:address => "192.168.0.1", :port => 10041)
  server.on_request do |request, client|
    body = "{\"alloc_count\":163,...}"
    header = GQTP::Header.new
    header.query_type = GQTP::Header::ContentType::JSON
    header.flags = GQTP::Header::Flag::TAIL
    header.size = body.bytesize
    client.write(header.pack, body) do
      client.close
    end
  end
  server.run.wait

GQTPプロキシとして使う:

  require "gqtp"

  proxy = GQTP::Proxy.new(:listen_address => "127.0.0.1",
                          :listen_port => 10041,
                          :upstream_address => "192.168.0.1",
                          :upstream_port => 10041)
  proxy.run.wait


GQTPのプロトコルはとてもシンプルなのでRuby以外の他の言語でも
わりと簡単に実装できるはずです。Rubyの実装もコメントとかなに
やらを入れても1000行くらいです。GQTPのプロトコルは今日リリー
スされたgroonga 2.0.9からドキュメント化したのでぜひ他の言語
でもチャレンジしてみてください!

  http://groonga.org/ja/docs/spec/gqtp.html



さて、今日は年に一度のgroonga勉強会「全文検索エンジンgroonga
を囲む夕べ 3」が開催されます。
  http://atnd.org/events/33070

補欠の人もいるので、参加登録はしたけど来れなくなってしまった
人はキャンセルしてもらえると補欠の人も参加できて助かります!

また、今回もUStreamなどで会場にこれなくても内容がわかるような
仕組みを用意する予定です。遠方でこれない人や、補欠で入れない
人や、残念ながら体調不良でキャンセルしてしまった人はtwitter
で@groongaをチェックしていてください!
  https://twitter.com/groonga/

開場が18:30で、開演が19:00なのですが、開演前に
groonga/mroongaの開発者に直接話を聞ける場所を用意する予定で
す。直接、開発者に質問・要望できるチャンスなので、都合があう
参加者は早めに会場に来てみてください!

-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)

groongaサポート:
  http://groonga.org/ja/support/
パッチ採用はじめました:
  http://www.clear-code.com/recruitment/




groonga-dev メーリングリストの案内
Back to archive index