22个版本
0.4.5 | 2023年1月10日 |
---|---|
0.4.5-alpha.0 | 2022年6月16日 |
0.4.4 | 2022年5月18日 |
0.4.3 | 2022年3月24日 |
0.3.7 | 2021年7月14日 |
#829 in 数据库接口
87 每月下载量
在bailongma中使用
280KB
6.5K SLoC
libtaos - Rust的另一个TDengine连接器
Crates.io版本 | Crates.io下载量 | CodeCov |
---|---|---|
感谢@songtianyi为libtdengine做出贡献 - 一个为TDengine提供Rust绑定的项目。
它是一个基于C接口或REST API的TDengine rust客户端的新设计。它将提供类似Rust的API以及所有Rust相关特性(如异步/stream/迭代器等)。
依赖项
- Rust 当然。
如果你使用默认功能,它将依赖于
- TDengine 客户端库和头文件。
- clang,因为bindgen需要clang AST库。
功能
设计中的功能
构建和测试
cargo build
cargo test
test
将使用localhost上默认的TDengine用户和密码(TDengine默认)。
如果非默认,则设置变量
TEST_TAOS_IP
TEST_TAOS_PORT
TEST_TAOS_USER
TEST_TAOS_PASS
TEST_TAOS_DB
使用方法
对于默认的基于C的客户端API,在Cargo.toml中设置
[dependencies]
libtaos = "*"
对于r2d2支持
[dependencies]
libtaos = { version = "*", features = ["r2d2"] }
对于REST客户端
[dependencies]
libtaos = { version = "*", features = ["rest"] }
examples目录中有一个示例应用程序,如下所示
// ...
#[tokio::main]
async fn main() -> Result<(), Error> {
init();
let taos = taos_connect()?;
assert_eq!(
taos.query("drop database if exists demo").await.is_ok(),
true
);
assert_eq!(taos.query("create database demo").await.is_ok(), true);
assert_eq!(taos.query("use demo").await.is_ok(), true);
assert_eq!(
taos.query("create table m1 (ts timestamp, speed int)")
.await
.is_ok(),
true
);
for i in 0..10i32 {
assert_eq!(
taos.query(format!("insert into m1 values (now+{}s, {})", i, i).as_str())
.await
.is_ok(),
true
);
}
let rows = taos.query("select * from m1").await?;
println!("{}", rows.column_meta.into_iter().map(|col| col.name).join(","));
for row in rows.rows {
println!("{}", row.into_iter().join(","));
}
Ok(())
}
贡献
欢迎所有贡献。
许可证
与TDengine 保持一致。
依赖项
~6–18MB
~261K SLoC