読者です 読者をやめる 読者になる 読者になる

ext

TokyoTyrant Lua Python

Luaスクリプトを用意する。

-- test.lua
function hello(key, value)
    local val = "Hello TT" .. value
    _put(key, val)
    return val
end

TokyoTyrantサーバを起動

$ ttserver -port 1978 -ext test.lua test.tcb

python-tokyotyrantで試してみる。

>>> from tokyotyrant import open
>>> tt = open("localhost", 1978)
>>> tt.ext("hello", "spam", ", Hello World")
'Hello TT, Hello World'

レコードロックが必要な場合、

>>> from tokyotyrant import open, RDBXOLCKREC
>>> tt = open("localhost", 1978)
>>> tt.ext("hello", "egg", ", Hello Lua", RDBXOLCKREC)
'Hello TT, Hello Lua'

【追記】引数のとり方を変更し、C APIのtcrdbextのint optsをPythonバインディングではext(name, key, value, opt=0)のようにした。

参考