Skip to content

0xBF/lwtarantool

Repository files navigation

LWTarantool - Ruby client for Tarantool 1.7+

Build Status Gem Version

About

A Ruby client for Tarantool 1.7+.

It doesn't support all tarantool protocol features, the only function calls, but allow work with tarantool in async paradigm.

Based on official tarantool-c connector.

Getting started

Install

$ gem install lwtarantool

Connect

require 'lwtarantool'
tnt = LWTarantool.new(url: '127.0.0.1:3301')

Pipelining

reqs = []
reqs << conn.call('box.slab.info', [])
reqs << conn.call('box.runtime.info', [])

reqs.each(&:wait)

if reqs[0].result
  puts "req0 result: #{reqs[0].result.inspect}"
else
  puts "req0 error: #{reqs[0].error}"
end

if reqs[1].result
  puts "req1 result: #{reqs[1].result.inspect}"
else
  puts "req1 error: #{reqs[1].error}"
end

Async requests

slab_req = conn.call('box.slab.info', [])
runtime_req = conn.call('box.runtime.info', [])

2.times do
  req = conn.read
  case req
  when slab_req
    if req.result
      puts "slab info: #{req.result.inspect}"
    else
      puts "slab info error: #{req.error}"
    end
  when runtime_req
    if req.result
      puts "runtime info: #{req.result.inspect}"
    else
      puts "runtime info error: #{req.error}"
    end
  end
end

Error handling

Testing

This library is tested against recent Ruby versions. Check Semaphore CI for the exact versions supported.

Contributing

Fork the project and send pull requests.

Releases

No releases published

Packages

No packages published