8个版本

0.2.1 2023年4月20日
0.2.0 2022年8月4日
0.1.5 2022年8月2日

1406数据库接口


mqtt2influxdb 中使用

MIT/Apache

61KB
1.5K SLoC

Influxdb-rs


Crates.io Build Status docs downloads issues license

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-clientinfluxdb-client-go 的源代码,然后编写了一个库来支持 2.x API 版本,用于我的个人使用。虽然 influxdb2-client 可以正常工作,但没有发布到 crates,所以我决定自己构建。祝您使用愉快!

依赖项

~4–41MB
~639K SLoC