22个版本

0.4.5 2023年1月10日
0.4.5-alpha.02022年6月16日
0.4.4 2022年5月18日
0.4.3 2022年3月24日
0.3.7 2021年7月14日

#829 in 数据库接口

Download history 5/week @ 2024-05-18

87 每月下载量
bailongma中使用

MIT 许可证

280KB
6.5K SLoC

libtaos - Rust的另一个TDengine连接器

Crates.io版本 Crates.io下载量 CodeCov
Crates.io Crates.io codecov

感谢@songtianyilibtdengine做出贡献 - 一个为TDengine提供Rust绑定的项目。

它是一个基于C接口或REST API的TDengine rust客户端的新设计。它将提供类似Rust的API以及所有Rust相关特性(如异步/stream/迭代器等)。

依赖项

如果你使用默认功能,它将依赖于

  • TDengine 客户端库和头文件。
  • clang,因为bindgen需要clang AST库。

功能

设计中的功能

  • C接口的API
  • 通过功能 rest 支持REST API。
  • r2d2 Pool支持通过功能 r2d2
  • 无模式插入 支持
  • 字段检索迭代器
  • 流支持
  • 订阅支持

构建和测试

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