MCPcopy Index your code
hub / github.com/apache/iceberg-rust

github.com/apache/iceberg-rust @v0.9.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.9.1 ↗ · + Follow
4,355 symbols 19,049 edges 225 files 1,118 documented · 26%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Apache Iceberg™ Rust

Rust implementation of Apache Iceberg™.

Components

The Apache Iceberg Rust project is composed of the following components:

Name Release Docs
iceberg iceberg image docs release docs dev
iceberg-datafusion iceberg-datafusion image docs release docs dev
iceberg-catalog-glue iceberg-catalog-glue image docs release docs dev
iceberg-catalog-hms iceberg-catalog-hms image docs release docs dev
iceberg-catalog-rest iceberg-catalog-rest image docs release docs dev

Iceberg Rust Implementation Status

The features that Iceberg Rust currently supports can be found here.

Supported Rust Version

Iceberg Rust is built and tested with stable rust, and will keep a rolling MSRV (minimum supported rust version). At least three months from latest rust release is supported. MSRV is updated when we release iceberg-rust.

Check the current MSRV on crates.io.

Contribute

Apache Iceberg is an active open-source project, governed under the Apache Software Foundation (ASF). Apache Iceberg Rust is always open to people who want to use or contribute to it. Here are some ways to get involved.

The Apache Iceberg community is built on the principles described in the Apache Way and all who engage with the community are expected to be respectful, open, come with the best interests of the community in mind, and abide by the Apache Foundation Code of Conduct.

Users

  • Databend: An open-source cloud data warehouse that serves as a cost-effective alternative to Snowflake.
  • Lakekeeper: An Apache-licensed Iceberg REST Catalog with data access controls.
  • Moonlink: A Rust library that enables sub-second mirroring (CDC) of Postgres tables into Iceberg.
  • RisingWave: A Postgres-compatible SQL database designed for real-time event streaming data processing, analysis, and management.
  • Wrappers: Postgres Foreign Data Wrapper development framework in Rust.
  • ETL: Stream your Postgres data anywhere in real-time.

License

Licensed under the Apache License, Version 2.0

Extension points exported contracts — how you extend this code

Bind (Interface)
Bind expression to a schema. [6 implementers]
crates/iceberg/src/expr/mod.rs
EngineRunner (Interface)
(no doc) [1 implementers]
crates/sqllogictest/src/engine/mod.rs
BoxedCatalogBuilder (Interface)
(no doc) [1 implementers]
crates/catalog/loader/src/lib.rs
BoundPredicateVisitor (Interface)
A visitor for [`BoundPredicate`]s. Visits in post-order. [12 implementers]
crates/iceberg/src/expr/visitors/bound_predicate_visitor.rs
SchemaVisitor (Interface)
A post order schema visitor. For order of methods called, please refer to [`visit_schema`]. [9 implementers]
crates/iceberg/src/spec/schema/visitor.rs
TransformFunction (Interface)
TransformFunction is a trait that defines the interface for all transform functions. [8 implementers]
crates/iceberg/src/transform/mod.rs
CatalogBuilder (Interface)
Common interface for all catalog builders. [6 implementers]
crates/iceberg/src/catalog/mod.rs

Core symbols most depended-on inside this repo

bind
called by 321
crates/iceberg/src/expr/term.rs
and
called by 296
crates/iceberg/src/expr/visitors/strict_projection.rs
assert_projection
called by 293
crates/iceberg/src/transform/mod.rs
binary_predicate
called by 219
crates/iceberg/src/transform/mod.rs
as_ref
called by 218
crates/iceberg/src/catalog/mod.rs
map
called by 194
crates/iceberg/src/arrow/value.rs
name
called by 189
crates/iceberg/src/expr/term.rs
as_any
called by 140
crates/integrations/datafusion/src/schema.rs

Shape

Function 2,025
Method 1,914
Class 325
Enum 58
Interface 33

Languages

Rust99%
Python1%

Modules by API surface

crates/iceberg/src/arrow/reader.rs121 symbols
crates/iceberg/src/spec/table_metadata.rs120 symbols
crates/iceberg/src/expr/predicate.rs97 symbols
crates/iceberg/src/spec/table_metadata_builder.rs96 symbols
crates/iceberg/src/catalog/memory/catalog.rs96 symbols
crates/iceberg/src/catalog/mod.rs95 symbols
crates/catalog/sql/src/catalog.rs93 symbols
crates/iceberg/src/expr/visitors/inclusive_metrics_evaluator.rs86 symbols
crates/iceberg/src/spec/values/tests.rs85 symbols
crates/catalog/rest/src/catalog.rs81 symbols
crates/iceberg/src/expr/visitors/strict_metrics_evaluator.rs80 symbols
crates/iceberg/src/expr/visitors/row_group_metrics_evaluator.rs76 symbols

For agents

$ claude mcp add iceberg-rust \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact