Empty2k12 / Influxdb Rust
Licence: mit
Rust Client for the InfluxDB Time Series Database
Stars: ✭ 85
Programming Languages
rust
11053 projects
Projects that are alternatives of or similar to Influxdb Rust
Datax
DataX is an open source universal ETL tool that support Cassandra, ClickHouse, DBF, Hive, InfluxDB, Kudu, MySQL, Oracle, Presto(Trino), PostgreSQL, SQL Server
Stars: ✭ 116 (+36.47%)
Mutual labels: database, influxdb
Victoriametrics
VictoriaMetrics: fast, cost-effective monitoring solution and time series database
Stars: ✭ 5,558 (+6438.82%)
Mutual labels: database, influxdb
Influxdata.net
InfluxData TICK stack .net library.
Stars: ✭ 142 (+67.06%)
Mutual labels: database, influxdb
Influxdb
Scalable datastore for metrics, events, and real-time analytics
Stars: ✭ 22,577 (+26461.18%)
Mutual labels: database, influxdb
Questdb
An open source SQL database designed to process time series data, faster
Stars: ✭ 7,544 (+8775.29%)
Mutual labels: database, influxdb
Influxdb Bundle
Bundle service integration of official influxdb/influxdb-php client
Stars: ✭ 24 (-71.76%)
Mutual labels: database, influxdb
Hale
(Spatial) data harmonisation with hale studio (formerly HUMBOLDT Alignment Editor)
Stars: ✭ 84 (-1.18%)
Mutual labels: database
Ten34
A globally-distributed, eventually-consistent, 100% available key-value store ;)
Stars: ✭ 87 (+2.35%)
Mutual labels: database
Squasher
Squasher - squash your old migrations in a single command
Stars: ✭ 1,260 (+1382.35%)
Mutual labels: database
Electrocrud
Database CRUD Application Built on Electron | MySQL, Postgres, SQLite
Stars: ✭ 1,267 (+1390.59%)
Mutual labels: database
Paxosstore
PaxosStore has been deployed in WeChat production for more than two years, providing storage services for the core businesses of WeChat backend. Now PaxosStore is running on thousands of machines, and is able to afford billions of peak TPS.
Stars: ✭ 1,278 (+1403.53%)
Mutual labels: database
One Lin3r
Gives you one-liners that aids in penetration testing operations, privilege escalation and more
Stars: ✭ 1,259 (+1381.18%)
Mutual labels: database
Room Persistence Sample
Implementation of Room Persistence Library
Stars: ✭ 88 (+3.53%)
Mutual labels: database
Evolutility Server Node
Model-driven REST or GraphQL backend for CRUD and more, written in Javascript, using Node.js, Express, and PostgreSQL.
Stars: ✭ 84 (-1.18%)
Mutual labels: database
Typeorm Loader
A database-aware data-loader for use with GraphQL and TypeORM.
Stars: ✭ 86 (+1.18%)
Mutual labels: database
Java Notes
📚 计算机科学基础知识、Java开发、后端/服务端、面试相关 📚 computer-science/Java-development/backend/interview
Stars: ✭ 1,284 (+1410.59%)
Mutual labels: database
This library is a work in progress. This means a feature you might need is not implemented yet or could be handled better.
Pull requests are always welcome. See Contributing and Code of Conduct. For a list of past changes, see CHANGELOG.md.
Currently Supported Features
- Reading and Writing to InfluxDB
- Optional Serde Support for Deserialization
- Running multiple queries in one request (e.g.
SELECT * FROM weather_berlin; SELECT * FROM weather_london
) - Authenticated and Unauthenticated Connections
-
async
/await
support -
#[derive(InfluxDbWriteable)]
Derive Macro for Writing / Reading into Structs -
GROUP BY
support - Tokio and async-std support (see example below) or available backends
- Swappable HTTP backends (see below)
Quickstart
Add the following to your Cargo.toml
influxdb = { version = "0.4.0", features = ["derive"] }
For an example with using Serde deserialization, please refer to serde_integration
use influxdb::{Client, Query, Timestamp};
use influxdb::InfluxDbWriteable;
use chrono::{DateTime, Utc};
#[async_std::main]
// or #[tokio::main] if you prefer
async fn main() {
// Connect to db `test` on `http://localhost:8086`
let client = Client::new("http://localhost:8086", "test");
#[derive(InfluxDbWriteable)]
struct WeatherReading {
time: DateTime<Utc>,
humidity: i32,
#[influxdb(tag)] wind_direction: String,
}
// Let's write some data into a measurement called `weather`
let weather_reading = WeatherReading {
time: Timestamp::Hours(1).into(),
humidity: 30,
wind_direction: String::from("north"),
};
let write_result = client
.query(&weather_reading.into_query("weather"))
.await;
assert!(write_result.is_ok(), "Write result was not okay");
// Let's see if the data we wrote is there
let read_query = Query::raw_read_query("SELECT * FROM weather");
let read_result = client.query(&read_query).await;
assert!(read_result.is_ok(), "Read result was not ok");
println!("{}", read_result.unwrap());
}
For further examples, check out the Integration Tests in tests/integration_tests.rs
in the repository.
Choice of HTTP backend
To communicate with InfluxDB, you can choose the HTTP backend to be used configuring the appropriate feature:
-
hyper (used by default)
influxdb = { version = "0.4.0", features = ["derive"] }
-
curl, using libcurl
influxdb = { version = "0.4.0", default-features = false, features = ["derive", "use-serde", "curl-client"] }
-
async-h1 with native TLS (OpenSSL)
influxdb = { version = "0.4.0", default-features = false, features = ["derive", "use-serde", "h1-client"] }
-
async-h1 with rustls
influxdb = { version = "0.4.0", default-features = false, features = ["derive", "use-serde", "h1-client-rustls"] }
- WebAssembly's
window.fetch
, viaweb-sys
and wasm-bindgeninfluxdb = { version = "0.4.0", default-features = false, features = ["derive", "use-serde", "wasm-client"] }
License
@ 2020 Gero Gerke and contributors.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].