TDengine Rust Connector
libtaos
是 TDengine 的官方 Rust 语言连接器。Rust 开发人员可以通过它开发存取 TDengine 数据库的应用软件。
libtaos
提供两种建立连接的方式。一种是原生连接,它通过 TDengine 客户端驱动程序(taosc)连接 TDengine 运行实例。另外一种是 REST 连接,它通过 taosAdapter 的 REST 接口连接 TDengine 运行实例。你可以通过不同的 “特性(即 Cargo 关键字 features)” 来指定使用哪种连接器。REST 连接支持任何平台,但原生连接支持所有 TDengine 客户端能运行的平台。
libtaos
的源码托管在 GitHub。
支持的平台
原生连接支持的平台和 TDengine 客户端驱动支持的平台一致。 REST 连接支持所有能运行 Rust 的平台。
版本支持
请参考版本支持列表
Rust 连接器仍然在快速开发中,1.0 之前无法保证其向后兼容。建议使用 2.4 版本以上的 TDengine,以避免已知问题。
安装
安装前准备
- 安装 Rust 开发工具链
- 如果使用原生连接,请安装 TDengine 客户端驱动,具体步骤请参考安装客户端驱动
添加 libtaos 依赖
根据选择的连接方式,按照如下说明在 Rust 项目中添加 libtaos 依赖:
- 原生连接
- REST 连接
使用连接池
请在 Cargo.toml
中启用 r2d2
特性。
[dependencies]
# with taosc
libtaos = { version = "*", features = ["r2d2"] }
# or rest
libtaos = { version = "*", features = ["rest", "r2d2"] }
建立连接
TaosCfgBuilder 为使用者提供构造器形式的 API,以便于后续 创建连接或使用连接池。
let cfg: TaosCfg = TaosCfgBuilder::default()
.ip("127.0.0.1")
.user("root")
.pass("taosdata")
.db("log") // do not set if not require a default database.
.port(6030u16)
.build()
.expect("TaosCfg builder error");
}
现在您可以使用该对象创建连接:
let conn = cfg.connect()?;
连接对象可以创建多个:
let conn = cfg.connect()?;
let conn2 = cfg.connect()?;
可以在应用中使用连接池:
let pool = r2d2::Pool::builder()
.max_size(10000) // max connections
.build(cfg)?;
// ...
// Use pool to get connection
let conn = pool.get()?;
之后您可以对数据库进行相关操作:
async fn demo() -> Result<(), Error> {
// get connection ...
// create database
conn.exec("create database if not exists demo").await?;
// change database context
conn.exec("use demo").await?;
// create table
conn.exec("create table if not exists tb1 (ts timestamp, v int)").await?;
// insert
conn.exec("insert into tb1 values(now, 1)").await?;
// query
let rows = conn.query("select * from tb1").await?;
for row in rows.rows {
println!("{}", row.into_iter().join(","));
}
}