exarrow-rs 0.10.0

ADBC-compatible driver for Exasol with Arrow data format support
Documentation

exarrow-rs logo

Crates.io Documentation Rust CI License: MIT

ADBC-compatible driver for Exasol with Apache Arrow data format support.


Add to your project

cargo add exarrow-rs
cargo add tokio --features rt-multi-thread,macros

Quick Start

use exarrow_rs::adbc::Driver;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let driver = Driver::new();
    let database = driver.open("exasol://user:pwd@localhost:8563/my_schema")?;
    let mut connection = database.connect().await?;

    let results = connection.query("SELECT * FROM customers").await?;
    for batch in results {
        println!("Got {} rows", batch.num_rows());
    }

    connection.close().await?;
    Ok(())
}

Transport

exarrow-rs uses the native TCP protocol by default — Exasol's binary wire protocol with direct Arrow conversion and no intermediate JSON serialization. No extra configuration is needed.

The WebSocket transport is available as an opt-in alternative for compatibility or testing:

[dependencies]
exarrow-rs = { version = "0.10", features = ["websocket"] }
let db = driver.open("exasol://user:pwd@host:8563?transport=websocket")?;

See Transport Protocol in the docs for feature flags and build options.


Documentation

See docs/ for comprehensive documentation:


License

Community-supported. Licensed under MIT.


Build with Rust 🦀 and made with ❤️

Based on a prototype by marconae, now maintained by Exasol Labs 🧪.