Apache Iceberg

Clone this repo:
  1. 1c66e5a refactor: cache partition_schema in `fn plan_files()` (#362) by Marvin Lanhenke · 8 days ago main
  2. bbd042d Basic Integration with Datafusion (#324) by Marvin Lanhenke · 8 days ago
  3. 7dfc548 Refactor: Extract `partition_filters` from `ManifestEvaluator` (#360) by Marvin Lanhenke · 9 days ago
  4. 0154829 feat: implement manifest filtering in TableScan (#323) by Scott Donnelly · 13 days ago
  5. aba6209 feat: init iceberg writer (#275) by ZENOTME · 2 weeks ago

Apache Iceberg Rust

Native Rust implementation of Apache Iceberg.

Roadmap

Catalog

Catalog TypeStatus
RestDone
HiveDone
SqlIn Progress
GlueDone
DynamoDBNot Started

FileIO

FileIO TypeStatus
S3Done
Local FileDone
GCSNot Started
HDFSNot Started

Our FileIO is powered by Apache OpenDAL, so it would be quite easy to expand to other service.

Table API

Reader

FeatureStatus
File based task planningDone
Size based task planningNot started
Filter pushdown(manifest evaluation, partition prunning)In Progress
Apply deletions, including equality and position deletionsNot started
Read into arrow record batchIn Progress
Parquet file supportDone
ORC file supportNot started

Writer

FeatureStatus
Data writerNot started
Equality deletion writerNot started
Position deletion writerNot started
Partitioned writerNot started
Upsert writerNot started
Parquet file supportNot started
ORC file supportNot started

Transaction

FeatureStatus
Schema evolutionNot started
Update partition specNot started
Update propertiesNot started
Replace sort orderNot started
Update locationNot started
Append filesNot started
Rewrite filesNot started
Rewrite manifestsNot started
Overwrite filesNot started
Row level updatesNot started
Replace partitionsNot started
Snapshot managementNot started

Integrations

We will add integrations with other rust based data systems, such as polars, datafusion, etc.

Contribute

Iceberg is an active open-source project. We are always open to people who want to use it or contribute to it. Here are some ways to go.

License

Licensed under the Apache License, Version 2.0