All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- reqwest-based http client (enabled by default)
- deprecate
<dyn Query>::raw_read_query
in favour ofReadQuery::new
0.4.0 - 2021-03-08
-
implement
#[influxdb(tag)]
and#[influxdb(ignore)]
(@blasrodri in #81)#[tag]
is now#[influxdb(tag)]
and fields can be ignored with#[influxdb(ignore)]
-
Batch write support (@sunng87 in #87)
Build a query containing mutliple rows to be inserted
let q0 = Timestamp::Hours(11) .into_query("weather") .add_field("temperature", 82) .add_tag("location", "us-midwest"); let q1 = Timestamp::Hours(12) .into_query("weather") .add_field("temperature", 65) .add_tag("location", "us-midwest"); let query = vec![q0, q1].build();
-
Assertion should consider case-insensitive keywords (@rcastill in #83)
#[tag]
is now#[influxdb(tag)]
and fields can be ignored with#[influxdb(ignore)]
-
Add h1-client-rustls feature (@JEnoch in #88)
Switch between multiple http backends as described in the README.md
0.3.0 - 2020-11-15
-
Internal request connection pooling (@Robert-Steiner in #73)
Previously visible
Client
fields are now private. If you were using them before, please reference them from the creation of the Client. -
Support async-std (@JEnoch in #72)
The default backend is still Tokio, but if you're keen on switching, other backends are exposed as Cargo features
0.2.0 - 2020-10-25
- Allow
GROUP BY
queries by providingdeserialize_next_tagged
to deserialize the group fields (@SafariMonkey in #69) - Added
Default
forseries
in InfluxDb Response (@SafariMonkey in #67) WriteQuery
andReadQuery
now deriveDebug
andClone
(@jaredwolff in #63)
-
Deserialize series are now deserialized using field names not field order (@SafariMonkey in #62)
-
Due to InfluxDb inconsistencies between versions and ambiguities,
Timestamp::Now
has been removed. Please calculate the current timestamp since the epoch yourself and use the other availableTimestamp
values like so:use influxdb::{Timestamp}; use std::time::{SystemTime, UNIX_EPOCH}; let start = SystemTime::now(); let since_the_epoch = start .duration_since(UNIX_EPOCH) .expect("Time went backwards") .as_millis(); let query = Timestamp::Milliseconds(since_the_epoch) .into_query("weather") .add_field("temperature", 82);
- Fixed quotation marks of tag values and escaping of field values (@Robert-Steiner in #68)
- Fixed improper quoting on tag values when the value was text (@sparky8251 in #64)
0.1.0 - 2020-03-17
This adds #[derive(InfluxDbWriteable)]
for Structs, fixes escaping for the line-protocol and improves timestamp handling.
#[derive(InfluxDbWriteable)]
for deriving struct writing (@msrd0)
- Change type of timestamp-variants to
u128
(@mario-kr)
- Use
rfc3339
as default timestamp precision (@zjhmale)
- Rewrite to
async
/await
. Rust 1.39 is now the minimum required Rust version.
0.0.5 - 2019-08-16
This release removes the prefix InfluxDb
of most types in this library and reexports the types under the influxdb::
path. In most cases, you can directly use the types now: e.g. influxdb::Client
vs influxdb::client::InfluxDbClient
.
- Switch to
cargo-readme
for README generation (@senden9) - Contributing Guidelines, Code of Conduct and Issue Templates
- Removed dependency
itertools
(@mvucenovic) - Replace internal representation in query of
Any
by an enum (@pcpthm) - Remove
InfluxDb
in type names - Replace ToString with Into
- Fix Crates.io detecting license incorrectly (@mimetypes)
- Don't commit Cargo.lock (@msrd0)
- Fix and Enforce Clippy Lints (@msrd0)
0.0.4 - 2019-08-16
- Possibility to authenticate against a InfluxDb instance (@valkum)
0.0.3 - 2019-07-14
- Possibility to run multiple queries in one. See the Integration Tests in
tests/integration_tests.rs
for examples. - Ability to specify Timestamp for write queries
- You now have to borrow a query when passing it to the
query
method
0.0.2 - 2019-07-23
- URLEncode Query before sending it to InfluxDB, which caused some empty returns (#5)
- Improved Test Coverage: There's now even more tests verifying correctness of the crate (#5)
- It's no longer necessary to supply a wildcard generic when working with serde*integration:
client.json_query::<Weather>(query)
instead ofclient.json_query::<Weather, *>(query)