16 个版本

0.5.2 2022年6月6日
0.5.1 2022年1月5日
0.5.0 2021年2月6日
0.4.5 2020年11月12日
0.2.2 2017年6月30日

数据库接口 中排名第 1046

Download history 2020/week @ 2024-03-14 1704/week @ 2024-03-21 2601/week @ 2024-03-28 3092/week @ 2024-04-04 3131/week @ 2024-04-11 2672/week @ 2024-04-18 1937/week @ 2024-04-25 2013/week @ 2024-05-02 2709/week @ 2024-05-09 2944/week @ 2024-05-16 2877/week @ 2024-05-23 3396/week @ 2024-05-30 3306/week @ 2024-06-06 2808/week @ 2024-06-13 2546/week @ 2024-06-20 1813/week @ 2024-06-27

每月下载量 11,058
用于 14 Crates(其中 9 个直接使用)

MIT 许可证

36KB
816

InfluxDBClient-rs

image Build Status

一个易于使用的 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.rsinfluxdb-python 的源代码,然后尝试编写一个用于 1.0+ 版本的库,以支持我的个人使用。

依赖项

~4–17MB
~276K SLoC