influx_client

crates-badge docs-badge

A Rust library to interact with InfluxDB databases. It is still early in development, so expect bugs and missing features.

Things that work

Examples

Writing to a bucket:

```rust use std::{collections::HashMap, time::SystemTime};

use influx_client::{ Client, InfluxError, Precision, WriteQuery, };

fn main() -> Result<(), InfluxError> { let client = Client::fromenv("http://localhost:8086").expect("INFLUXDBTOKEN not set"); let mut tags = HashMap::new(); tags.insert("t1", "v1"); tags.insert("t2", "v2"); let data = WriteQuery { name: "test", tags, field_name: "i", value: 42, timestamp: Some((SystemTime::now(), Precision::ns)), };

client.insert("home", "home", Precision::ms, data)?;

}

```

Reading from a bucket:

```rust use influx_client::{ flux::functions::{NumericFilter, Range, StringFilter}, Client, InfluxError, Precision, ReadQuery, };

fn main() -> Result<(), InfluxError> { let client = Client::fromenv("http://localhost:8086").expect("INFLUXDBTOKEN not set");

let q = ReadQuery::new("home")
    .range(Range::new(Some((-12, Precision::h)), None))
    .filter(StringFilter::Eq("_measurement", "test"))
    .filter(NumericFilter::Lt("_value", 99));

println!("{}", client.get("home", q)?);
Ok(())

}

```