1 unstable release

0.4.2 Mar 24, 2021

#511 in Authentication

Download history 13/week @ 2024-01-28 4/week @ 2024-02-04 3/week @ 2024-02-11 18/week @ 2024-02-18 37/week @ 2024-02-25 1/week @ 2024-03-03 4/week @ 2024-03-10 1/week @ 2024-03-17 7/week @ 2024-03-24 56/week @ 2024-03-31

68 downloads per month

MIT license

46KB
939 lines

InfluxDB Client Library

version docs

About this crate

What this crate provides

  • Support for InfluxDB 2.x.
  • Backlog storage of Record's on failure to commit due to connectivity or configuration issues.
  • Build-in compression of requests.

What it does not provide

  • Support for InfluxDB 1.x

What is on the roadmap

  • Support for async/await as a feature. #3
  • Reduction of dependencies by switching the underlying reqwest library with hyper. #4
  • Support for sending, processing responses to queries. #5
  • Support for mapping native types to query response data like sqlx. #6

Basic Usage

use influxc::Client;
use influxc::FileBacklog;

use influxc::Record;
use influxc::Precision;
use influxc::Credentials;
use influxc::InfluxError;

use std::time::Duration;
use std::thread::sleep;

fn main() -> Result<(), InfluxError>
{
    let creds   = Credentials::from_basic("testuser", "testpasswd");
    let backlog = FileBacklog::new("./ignore/backlog")?;

    let mut client = Client::build("http://127.0.0.1:8086".into(), creds)
        .backlog(backlog)
        .finish()?;

    let mut rec = Record::new("org", "bucket")
        .precision(Precision::Milliseconds);

    loop
    {
        rec.measurement("sensor1")
            .tag("floor", "second")
            .tag("exposure", "west")
            .field("temp", 123)
            .field("brightness", 500);

        rec.measurement("sensor2")
            .tag("floor", "second")
            .tag("exposure", "east")
            .field("temp", 321)
            .field("brightness", 999);

        if let Err(e) = client.write(&rec) {
            eprintln!("{}", e);
        }

        sleep(Duration::from_secs(1));
    }
}

Dependencies

~5–20MB
~284K SLoC