GQTP (Groonga Query Transfer Protocol) client and server for Ruby
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
doc/text
lib
sample
test
.gitignore
.travis.yml
.yardopts
Gemfile
README.md
Rakefile
gqtp.gemspec

README.md

README

Name

gqtp

Description

Gqtp gem is a GQTP (Groonga Query Transfer Protocol) Ruby implementation.

Gqtp gem provides both GQTP client, GQTP server and GQTP proxy implementations. They provide asynchronous API. You can use gqtp gem for high concurrency use.

Install

% gem install gqtp

Usage

Client

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

Server

server = GQTP::Server.new(:host => "192.168.0.1", :port => 10043)
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

Proxy

proxy = GQTP::Proxy.new(:listen_host => "127.0.0.1",
                        :listen_port => 10043,
                        :upstream_host => "192.168.0.1",
                        :upstream_port => 10043)
proxy.run.wait

Dependencies

  • Ruby

Mailing list

Thanks

  • ...

Authors

License

LGPLv2.1 or later. See doc/text/lgpl-2.1.txt for details.

(Kouhei Sutou has a right to change the license including contributed patches.)