Crate iceberg_rust

Source
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 management
  • catalog - Catalog implementations for metadata storage
  • arrow - Integration with Apache Arrow
  • view - View and materialized view support
  • error - 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