All Projects → Empty2k12 → Influxdb Rust

Empty2k12 / Influxdb Rust

Licence: mit
Rust Client for the InfluxDB Time Series Database

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
Kitura Redis
Swift Redis library
Stars: ✭ 84 (-1.18%)
Mutual labels:  database
Filodb
Distributed Prometheus time series database
Stars: ✭ 1,286 (+1412.94%)
Mutual labels:  database
Homer App
HOMER 7.x Front-End and API Server
Stars: ✭ 88 (+3.53%)
Mutual labels:  influxdb
Electrocrud
Database CRUD Application Built on Electron | MySQL, Postgres, SQLite
Stars: ✭ 1,267 (+1390.59%)
Mutual labels:  database
Clickhouse.client
.NET client for ClickHouse
Stars: ✭ 85 (+0%)
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

rust-influxdb

Unofficial InfluxDB Driver for Rust

Build Status Coverage Report Documentation Status Build with Rust Minimum Rust Version

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, via web-sys and wasm-bindgen
    influxdb = { version = "0.4.0", default-features = false, features = ["derive", "use-serde", "wasm-client"] }
    

License

License: MIT

@ 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].