Rust SDK
Rust SDK for Spice.ai
The Rust SDK spice-rs
is the easiest way to query Spice.ai from Rust.
It uses Apache Arrow Flight to efficiently stream data to the client and Apache Arrow Records as data frames.
Requirements
Installation
Add Spice SDK
cargo add spiceai
Usage
1. Create a SpiceClient
by providing your API key to ClientBuilder
. Get your free API key at spice.ai.
use spiceai::ClientBuilder;
#[tokio::main]
async fn main() {
let mut client = ClientBuilder::new()
.api_key("API_KEY")
.use_spiceai_cloud()
.build()
.await
.unwrap();
}
2. Execute a query and get back an Apache Arrow Flight Record Batch Stream.
let flight_data_stream = client.query("SELECT * FROM tpch.lineitem LIMIT 10;").await.expect("Error executing query");
3. Iterate through the reader to access the records.
while let Some(batch) = flight_data_stream.next().await {
match batch {
Ok(batch) => {
/* process batch */
println!("{:?}", batch)
},
Err(e) => {
/* handle error */
},
};
}
Usage with local Spice runtime
Follow the quickstart guide to install and run spice locally.
use spiceai::ClientBuilder;
#[tokio::main]
async fn main() {
let mut client = ClientBuilder::new()
.build()
.await
.unwrap();
let data = client.query("SELECT trip_distance, total_amount FROM taxi_trips ORDER BY trip_distance DESC LIMIT 10;").await;
}
Contributing
Contribute to or file an issue with the spice-rs
library at: https://github.com/spiceai/spice-rs
Last updated
Was this helpful?