17 releases
0.3.0 | May 1, 2022 |
---|---|
0.2.11 | Dec 5, 2022 |
0.2.10 | Jun 23, 2020 |
0.2.3 | Mar 8, 2020 |
0.1.1 | Sep 3, 2018 |
#763 in Asynchronous
99 downloads per month
Used in 6 crates
(3 directly)
61KB
1.5K
SLoC
Simple Rust client to tarantool
Ported java connector to tarantool db
https://github.com/tarantool/tarantool-java
Overview
Use tokio.io as base client framework
Usage
Example
Call echo stored procedure
run tarantool
cd test-tarantool;tarantool init-tarantool.lua
Lua stored procedure:
function test(a,b)
return a,b,11
end
Rust client :
println!("Connect to tarantool and call simple stored procedure!");
let client = ClientConfig::new("127.0.0.1:3301", "rust", "rust")
.set_timeout_time_ms(2000)
.set_reconnect_time_ms(2000)
.build();
let response = client
.prepare_fn_call("test")
.bind_ref(&("aa", "aa"))?
.bind(1)?
.execute().await?;
let res: ((String,String), u64) = response.decode_pair()?;
println!("stored procedure response ={:?}", res);
let response_sql = client
.prepare_sql("select * from TABLE1 where COLUMN1=?")
.bind(1)?
.execute().await?;
let meta = response.metadata();
let rows: Vec<(u32, String)> = response.decode_result_set()?;
println!("resp value={:?}", row);
Output :
Connect to tarantool and call simple stored procedure!
stored procedure response =(("param11", "param12"), (2,), (Some(11),))
On examples part of project you can also see more complicated examples :
hyper http server connecting to tarantool
actix-web example
simple benchmark
Dependencies
~5–12MB
~138K SLoC