Skip to content

tarantool/tarantool-lua

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

lua-tarantool-client

Driver for tarantool 1.7 on nginx cosockets and plain lua sockets

Introduction

A pure Lua driver for the NoSQL database Tarantool using fast nginx cosockets when available, or luasocket as a fallback.

Requires lua-MessagePack.

luasock

For luasock sockets, lua-resty-socket and sha1.lua are required.

These can be installed using luarocks install lua-resty-socket and luarocks install sha1

Synopsis

tarantool = require("tarantool")

-- initialize connection
local tar = tarantool({
    host           = '127.0.0.1',
    port           = 3301,
    user           = 'gg_tester',
    password       = 'pass',
    socket_timeout = 2000,
    connect_now    = true,
})

-- requests
local data, err = tar:ping()
local data, err = tar:insert('profiles', { 1, "nick 1" })
local data, err = tar:insert('profiles', { 2, "nick 2" })
local data, err = tar:select(2, 0, 3)
local data, err = tar:select('profiles', 'uid', 3)
local data, err = tar:replace('profiles', {3, "nick 33"})
local data, err = tar:delete('profiles', 3)
local data, err = tar:update('profiles', 'uid', 3, {{ '=', 1, 'nick new' }})
local data, err = tar:update('profiles', 'uid', 3, {{ '#', 1, 1 }})

-- disconnect or set_keepalive at the end
local ok, err = tar:disconnect()
local ok, err = tar:set_keepalive()

Hacking

Module contains implementations written in Lua and Moonscript. First one could be generated using second one using the Moonscript compiler:

$ luarocks --local install moonscript
$ export PATH=$PATH:$(luarocks path --lr-bin)
$ moonc -o tarantool.lua tarantool.moon