Expand description
Apache Iceberg implementation in Rust
This crate provides a native Rust implementation of Apache Iceberg, a table format for large analytic datasets. Iceberg manages large collections of files as tables, while providing atomic updates and concurrent writes.
§Features
- Table operations (create, read, update, delete)
- Schema evolution
- Hidden partitioning
- Time travel and snapshot isolation
- View and materialized view support
- Multiple catalog implementations (REST, AWS Glue, File-based)
§Components
The main components of this crate are:
table
- Core table operations and managementcatalog
- Catalog implementations for metadata storagearrow
- Integration with Apache Arrowview
- View and materialized view supporterror
- Error types and handling
§Example
use iceberg_rust::table::Table;
use iceberg_rust::catalog::Catalog;
// Create a new table
let mut table = Table::builder()
.with_name("example_table")
.with_schema(schema)
.build()
.await?;
// Start a transaction
table.new_transaction(None)
.update_schema(new_schema)
.commit()
.await?;
Modules§
- arrow
- Arrow integration for Apache Iceberg
- catalog
- Catalog module providing interfaces for managing Iceberg tables and metadata.
- error
- Error type for iceberg
- file_
format - Helper functions for different file formats.
- materialized_
view - Materialized view functionality for Apache Iceberg
- object_
store - Defining the Bucket struct for specifying buckets for the ObjectStore.
- spec
- Iceberg spec
- sql
- Utility functions for SQL
- table
- Table module provides the core functionality for working with Iceberg tables
- view
- View management for Apache Iceberg tables