#tarantool #async-client #api #protocols #async

rusty_tarantool

基于 tokio 框架的 Tarantool 异步客户端

17 个版本

0.3.0 2022 年 5 月 1 日
0.2.11 2022 年 12 月 5 日
0.2.10 2020 年 6 月 23 日
0.2.3 2020 年 3 月 8 日
0.1.1 2018 年 9 月 3 日

异步 中排名第 448

Download history 39/week @ 2024-02-27 27/week @ 2024-03-05 13/week @ 2024-03-12 2/week @ 2024-03-19 5/week @ 2024-03-26 57/week @ 2024-04-02 16/week @ 2024-04-09 3/week @ 2024-04-16 1/week @ 2024-05-07 4/week @ 2024-05-14 8/week @ 2024-05-21 108/week @ 2024-05-28 79/week @ 2024-06-04 8/week @ 2024-06-11

每月下载 203
用于 6 包(直接使用 3 个)

Apache-2.0 许可

61KB
1.5K SLoC

tarantool 的简单 Rust 客户端

将 Java 连接器移植到 tarantool 数据库

https://tarantool.io

https://github.com/tarantool/tarantool-java

概述

使用 tokio.io 作为基本客户端框架

用法

Latest Version

示例

调用存储过程

运行 tarantool

cd test-tarantool;tarantool init-tarantool.lua

Lua 存储过程

function test(a,b)
   return a,b,11
end

Rust 客户端


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);

输出

Connect to tarantool and call simple stored procedure!
stored procedure response =(("param11", "param12"), (2,), (Some(11),))

在项目的示例部分还可以看到更复杂的示例

连接到 tarantool 的 hyper http 服务器

actix-web 示例

简单基准测试

依赖项

~5–13MB
~139K SLoC