5 releases
0.1.4 | Mar 4, 2021 |
---|---|
0.1.3 | Mar 2, 2021 |
0.1.2 | Mar 2, 2021 |
0.1.1 | Feb 28, 2021 |
0.1.0 | Feb 28, 2021 |
#523 in Procedural macros
498 downloads per month
13KB
327 lines
🦀 InfluxDB Rust Client
NB! - This library is still in development and is not ready for production!
An unofficial client-library for InfluxDB v2.
⬇️ Installation
influxdb-client = "0.1.4"
❤️🔥 Usage
Insert by building a Point
use influxdb_client::{Client, Point, Precision, TimestampOptions};
let client = Client::new("http://localhost:8086", "token")
.with_org_id("168f31904923e853")
.with_bucket("tradely")
.with_precision(Precision::MS);
let point = Point::new("test")
.tag("ticker", "GME")
.field("price", 420.69)
.timestamp(1614956250000);
let points = vec![point];
// Insert with the timestamp from the point (1614956250000)
let result = client.insert_points(&points, TimestampOptions::FromPoint).await;
Insert using a struct
use influxdb_client::{Client, Precision, PointSerialize, TimestampOptions, Timestamp};
use influxdb_client::derives::PointSerialize;
let client = Client::new("http://localhost:8086", "token")
.with_org_id("168f31904923e853")
.with_bucket("tradely")
.with_precision(Precision::MS);
#[derive(PointSerialize)]
#[point(measurement = "test")]
struct Ticker {
#[point(tag)]
ticker: String,
#[point(field = "tickerPrice")]
price: f64,
#[point(timestamp)]
timestamp: Timestamp,
}
let point = Ticker {
ticker: String::from("GME"),
price: 420.69,
timestamp: Timestamp::from(1614956250000)
};
let points = vec![point];
// Insert without timestamp - InfluxDB will automatically set the timestamp
let result = client.insert_points(&points, TimestampOptions::None).await;
🪧 TODO
This todolist is still in progress and will be expanded in the future.
- Implement insertion into InfluxDB from client
- Implement procedural macro for implementing PointSerialize
- Implement querying
- Implement other important things
Dependencies
~4–16MB
~244K SLoC