Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/driftluo/influxdbclient-rs
A easy-use client to influxdb
https://github.com/driftluo/influxdbclient-rs
influxdb rust
Last synced: 29 days ago
JSON representation
A easy-use client to influxdb
- Host: GitHub
- URL: https://github.com/driftluo/influxdbclient-rs
- Owner: driftluo
- License: mit
- Created: 2017-06-11T10:42:43.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-07-05T03:26:55.000Z (5 months ago)
- Last Synced: 2024-10-04T11:29:51.559Z (about 2 months ago)
- Topics: influxdb, rust
- Language: Rust
- Homepage: https://docs.rs/influx_db_client/
- Size: 109 KB
- Stars: 82
- Watchers: 4
- Forks: 39
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# InfluxDBClient-rs
![image](https://img.shields.io/crates/v/influx_db_client.svg)
[![Build Status](https://api.travis-ci.org/driftluo/InfluxDBClient-rs.svg?branch=master)](https://travis-ci.org/driftluo/InfluxDBClient-rs)A easy-use client to influxdb
## Overview
This is an InfluxDB driver for Rust.
## Status
This project has been able to run properly, PR is welcome.
## Usage
### Use
```
[dependencies]
influx_db_client = "^0.5.0"
```### http
```Rust
use influx_db_client::{
Client, Point, Points, Value, Precision, point, points
};
use tokio;fn main() {
// default with "http://127.0.0.1:8086", db with "test"
let client = Client::default().set_authentication("root", "root");let point = point!("test1")
.add_field("foo", "bar")
.add_field("integer", 11)
.add_field("float", 22.3)
.add_field("'boolean'", false);let point1 = Point::new("test1")
.add_tag("tags", "\\\"fda")
.add_tag("number", 12)
.add_tag("float", 12.6)
.add_field("fd", "'3'")
.add_field("quto", "\\\"fda")
.add_field("quto1", "\"fda");let points = points!(point1, point);
tokio::runtime::Runtime::new().unwrap().block_on(async move {
// if Precision is None, the default is second
// Multiple write
client.write_points(points, Some(Precision::Seconds), None).await.unwrap();// query, it's type is Option>
let res = client.query("select * from test1", None).await.unwrap();
println!("{:?}", res.unwrap()[0].series)
});
}
```### udp
```Rust
use influx_db_client::{UdpClient, Point, Value, point};fn main() {
let mut udp = UdpClient::new("127.0.0.1:8089");
udp.add_host("127.0.0.1:8090");let point = point!("test").add_field("foo", Value::String(String::from("bar")));
udp.write_point(point).unwrap();
}
```## Compatibility
This is the [API Document](https://docs.influxdata.com/influxdb/v1.2/tools/api/), it may apply to version 1.0 or higher.
I have tested it in version 1.0.2/1.3.5/1.5.
## Thanks
Because [**influent**](https://github.com/gobwas/influent.rs) seems to have no longer updated, and only support to the 0.9 version. I read **influent.rs** and [**influxdb-python**](https://github.com/influxdata/influxdb-python) source, and then try to write a library for 1.0+ version for support for my own use.