8个版本
0.2.1 | 2023年4月20日 |
---|---|
0.2.0 | 2022年8月4日 |
0.1.5 | 2022年8月2日 |
1406 在 数据库接口
在 mqtt2influxdb 中使用
61KB
1.5K SLoC
Influxdb-rs
TL;DR
InfluxDB APIv2 的 Rust 客户端
概述
这是用于 Rust 编程语言的 InfluxDB 驱动程序。它主要支持异步操作,但未来也将包括同步操作。驱动程序旨在与 InfluxDB API 的版本 2 一起使用。它可以向后兼容 1.x 端点,但这不是该库的主要目标。
状态
- HTTP 客户端
- 使用 Token 认证
- 服务器
- Ping
- 获取版本
- 获取组织 ID
- 确定附加功能
- 测量
- 删除测量
- 添加点
- 添加测量
- 添加字段
- 添加时间戳
- 确定附加功能
- 桶
- 创建桶
- 删除桶
- 更改桶
- 确定附加功能
- Rocket.rs 数据库驱动程序
- 查询
- Flux 查询
- 确定附加功能
- 测试
- 认证集成
- 认证单元
- 写入集成
- 写入单元
- 向后兼容
- 基本认证
- 1.x 端点查询
用法
使用
[dependencies]
influxdb_rs = "0.2"
http
use influxdb_rs::Client;
use url::Url;
use chrono::prelude::*;
#[tokio::main]
async fn main() {
let client = Client::new(Url::parse("https://127.0.0.1:8086").unwrap(), "test_bucket", "test_org", "0123456789").await.unwrap();
let now = Utc::now();
let point = Point::new("temporary")
.add_field("foo", "bar")
.add_field("integer", 11)
.add_field("float", 22.3)
.add_field("'boolean'", false)
.add_timestamp(now.timestamp());
let result = client.write_point(point, Some(Precision::Seconds), None).await;
if result.is_err(){
// Error!
}
let later = Utc::now().to_rfc3339().to_string();
client.drop_measurement("temporary", &now.to_rfc3339(), &later).await.unwrap();
}
兼容性
InfluxDB APIv2 API 文档
测试
- OSS 2.3
- OSS 2.2
- OSS 2.1
感谢
因为 influxdbclient-rs 只支持 1.x 版本。我最终阅读了 influxdb2-client 和 influxdb-client-go 的源代码,然后编写了一个库来支持 2.x API 版本,用于我的个人使用。虽然 influxdb2-client 可以正常工作,但没有发布到 crates,所以我决定自己构建。祝您使用愉快!
依赖项
~4–41MB
~639K SLoC