3 releases (breaking)
0.3.0 | Aug 19, 2024 |
---|---|
0.2.0 | Feb 20, 2024 |
0.1.0 | Aug 9, 2021 |
#286 in Database interfaces
238 downloads per month
Used in 6 crates
(5 directly)
1.5MB
31K
SLoC
Apache Iceberg Official Native Rust Implementation
This crate contains the official Native Rust implementation of Apache Iceberg.
See the API documentation for examples and the full API.
Usage
use futures::TryStreamExt;
use iceberg::io::{FileIO, FileIOBuilder};
use iceberg::{Catalog, Result, TableIdent};
use iceberg_catalog_memory::MemoryCatalog;
#[tokio::main]
async fn main() -> Result<()> {
// Build your file IO.
let file_io = FileIOBuilder::new("memory").build()?;
// Connect to a catalog.
let catalog = MemoryCatalog::new(file_io, None);
// Load table from catalog.
let table = catalog
.load_table(&TableIdent::from_strs(["hello", "world"])?)
.await?;
// Build table scan.
let stream = table
.scan()
.select(["name", "id"])
.build()?
.to_arrow()
.await?;
// Consume this stream like arrow record batch stream.
let _data: Vec<_> = stream. try_collect().await?;
Ok(())
}
Dependencies
~39–57MB
~1M SLoC