# QuestDB Client Library for Rust
Official Rust client for [QuestDB](https://questdb.io/), an open-source SQL
database designed to process time-series data, faster.
The client library is designed for fast ingestion of data into QuestDB via the
InfluxDB Line Protocol (ILP).
* [QuestDB Database docs](https://questdb.io/docs/)
* [Docs on InfluxDB Line Protocol](https://questdb.io/docs/reference/api/ilp/overview/)
## Quick Start
To start using `questdb-rs`, add it as a dependency of your project:
```bash
cargo add questdb-rs
```
Then you can try out this quick example, which connects to a QuestDB server
running on your local machine:
```rust no_run
use questdb::{
Result,
ingress::{
Sender,
Buffer,
TimestampNanos}};
fn main() -> Result<()> {
let mut sender = Sender::from_conf("http::addr=localhost:9000;")?;
let mut buffer = Buffer::new();
buffer
.table("sensors")?
.symbol("id", "toronto1")?
.column_f64("temperature", 20.0)?
.column_i64("humidity", 50)?
.at(TimestampNanos::now())?;
sender.flush(&mut buffer)?;
Ok(())
}
```
## Docs
Most of the client documentation is on the
[`ingress`](https://docs.rs/questdb-rs/4.0.3/questdb/ingress/) module page.
## Crate features
This Rust crate supports a number of optional features, in most cases linked
to additional library dependencies.
For example, if you want to work with Chrono timestamps, use:
```bash
cargo add questdb-rs --features chrono_timestamp
```
### Default-enabled features
* `ilp-over-http`: Enables ILP/HTTP support via the `ureq` crate.
* `tls-webpki-certs`: Supports using the `webpki-roots` crate for TLS
certificate verification.
### Optional features
These features are opt-in:
* `chrono_timestamp`: Allows specifying timestamps as `chrono::Datetime` objects.
* `tls-native-certs`: Supports validating TLS certificates against the OS's
certificates store.
* `insecure-skip-verify`: Allows skipping server certificate validation in TLS
(this compromises security).
## C, C++ and Python APIs
This crate is also exposed as a C and C++ API and in turn exposed to Python.
* This project's [GitHub page](https://github.com/questdb/c-questdb-client)
for the C and C++ API.
* [Python bindings](https://github.com/questdb/py-questdb-client).
## Community
If you need help, have additional questions or want to provide feedback, you
may find us on [Slack](https://slack.questdb.io/).
You can also sign up to our [mailing list](https://questdb.io/community/) to
get notified of new releases.