iceberg_rust/
lib.rs

1#![deny(missing_docs)]
2//! Apache Iceberg implementation in Rust
3//!
4//! This crate provides a native Rust implementation of [Apache Iceberg](https://iceberg.apache.org/),
5//! a table format for large analytic datasets. Iceberg manages large collections of files as tables,
6//! while providing atomic updates and concurrent writes.
7//!
8//! # Features
9//!
10//! * Table operations (create, read, update, delete)
11//! * Schema evolution
12//! * Hidden partitioning
13//! * Time travel and snapshot isolation
14//! * View and materialized view support
15//! * Multiple catalog implementations (REST, AWS Glue, File-based)
16//!
17//! # Components
18//!
19//! The main components of this crate are:
20//!
21//! * [`table`] - Core table operations and management
22//! * [`catalog`] - Catalog implementations for metadata storage
23//! * [`arrow`] - Integration with Apache Arrow
24//! * [`view`] - View and materialized view support
25//! * [`error`] - Error types and handling
26//!
27//! # Example
28//!
29//! ```rust,no_run
30//! # async fn example() -> Result<(), Box<dyn std::error::Error>> {
31//! use iceberg_rust::table::Table;
32//! use iceberg_rust::catalog::Catalog;
33//!
34//! // Create a new table
35//! let mut table = Table::builder()
36//!     .with_name("example_table")
37//!     .with_schema(schema)
38//!     .build()
39//!     .await?;
40//!
41//! // Start a transaction
42//! table.new_transaction(None)
43//!     .update_schema(new_schema)
44//!     .commit()
45//!     .await?;
46//! # Ok(())
47//! # }
48//! ```
49
50pub mod arrow;
51pub mod catalog;
52pub mod error;
53pub mod file_format;
54pub mod materialized_view;
55pub mod object_store;
56pub mod spec;
57pub mod sql;
58pub mod table;
59pub(crate) mod util;
60pub mod view;