16 个版本
0.5.2 |
|
---|---|
0.5.1 | 2022年1月5日 |
0.5.0 | 2021年2月6日 |
0.4.5 | 2020年11月12日 |
0.2.2 |
|
在 数据库接口 中排名第 1046
每月下载量 11,058
用于 14 个 Crates(其中 9 个直接使用)
36KB
816 行
InfluxDBClient-rs
一个易于使用的 influxdb 客户端
概述
这是一个为 Rust 编写的 InfluxDB 驱动。
状态
该项目可以正常运行,欢迎提交 PR。
使用方法
使用
[dependencies]
influx_db_client = "^0.5.0"
http
use influx_db_client::{
Client, Point, Points, Value, Precision, point, points
};
use tokio;
fn main() {
// default with "http://127.0.0.1:8086", db with "test"
let client = Client::default().set_authentication("root", "root");
let point = point!("test1")
.add_field("foo", "bar")
.add_field("integer", 11)
.add_field("float", 22.3)
.add_field("'boolean'", false);
let point1 = Point::new("test1")
.add_tag("tags", "\\\"fda")
.add_tag("number", 12)
.add_tag("float", 12.6)
.add_field("fd", "'3'")
.add_field("quto", "\\\"fda")
.add_field("quto1", "\"fda");
let points = points!(point1, point);
tokio::runtime::Runtime::new().unwrap().block_on(async move {
// if Precision is None, the default is second
// Multiple write
client.write_points(points, Some(Precision::Seconds), None).await.unwrap();
// query, it's type is Option<Vec<Node>>
let res = client.query("select * from test1", None).await.unwrap();
println!("{:?}", res.unwrap()[0].series)
});
}
udp
use influx_db_client::{UdpClient, Point, Value, point};
fn main() {
let mut udp = UdpClient::new("127.0.0.1:8089");
udp.add_host("127.0.0.1:8090");
let point = point!("test").add_field("foo", Value::String(String::from("bar")));
udp.write_point(point).unwrap();
}
兼容性
这是 API 文档,它可能适用于 1.0 或更高版本。
我已经在版本 1.0.2/1.3.5/1.5 中测试过。
感谢
由于 influent 似乎已经不再更新,并且仅支持到 0.9 版本。我阅读了 influent.rs 和 influxdb-python 的源代码,然后尝试编写一个用于 1.0+ 版本的库,以支持我的个人使用。
依赖项
~4–17MB
~276K SLoC