e07bcd40c2
These were found by iterating over all of the dependencies of each Cargo.toml, then grepping that crate for the dependency's name. If it didn't show up, I attempted to remove it. I left a few dependencies that this process flagged: * generated_types - `pbjson`,`serde`. Apparently used by the generated code. * grpc-router-test-gen - `prost`. Apparently used by the generated code. * influxdb_iox - `heappy`. Doesn't appear used, but is behind enough feature flags that I don't care to reason about and it's already optional. - `tikv_jemalloc_sys`. Appears to be setting a feature flag of an indirect dependency. * iox_gitops_adapter - `k8s_openapi`. Appears to be setting a feature flag of an indirect dependency. |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
README.md |
README.md
InfluxDB IOx Client
This is the official Rust client library for connecting to InfluxDB IOx.
Using the HTTP API
If you only want to use the HTTP API, create an influxdb_iox_client::Client
. Here is an example of
creating an instance that connects to an IOx server running at http://127.0.0.1:8080
and creating
a database named telemetry
:
#[tokio::main]
fn main() {
use data_types::database_rules::DatabaseRules;
use influxdb_iox_client::ClientBuilder;
let client = ClientBuilder::default()
.build("http://127.0.0.1:8080")
.expect("client should be valid");
client
.create_database("telemetry", &DatabaseRules::default())
.await
.expect("failed to create database");
}
Using the Arrow Flight API
IOx supports an Arrow Flight gRPC API. To use
it, enable the flight
feature, which is off by default:
[dependencies]
influxdb_iox_client = { version = "[..]", features = ["flight"] }
Then you can create an influxdb_iox_client::FlightClient
by using the FlightClientBuilder
. Here
is an example of creating an instance that connects to an IOx server with its gRPC services
available at http://localhost:8082
and using it to perform a query:
#[tokio::main]
fn main() {
use data_types::database_rules::DatabaseRules;
use influxdb_iox_client::FlightClientBuilder;
let client = FlightClientBuilder::default()
.build("http://127.0.0.1:8082")
.expect("client should be valid");
let mut query_results = client
.perform_query(scenario.database_name(), sql_query)
.await;
let mut batches = vec![];
while let Some(data) = query_results.next().await {
batches.push(data);
}
}