|
17 | 17 | ~ under the License.
|
18 | 18 | -->
|
19 | 19 |
|
20 |
| -# Apache Iceberg Rust |
21 |
| - |
22 |
| -Native Rust implementation of [Apache Iceberg](https://iceberg.apache.org/). |
23 |
| - |
24 |
| -## Roadmap |
25 |
| - |
26 |
| -### Catalog |
27 |
| - |
28 |
| -| Catalog Type | Status | |
29 |
| -| ------------ | ----------- | |
30 |
| -| Rest | Done | |
31 |
| -| Hive | Done | |
32 |
| -| Sql | In Progress | |
33 |
| -| Glue | Done | |
34 |
| -| DynamoDB | Not Started | |
35 |
| - |
36 |
| -### FileIO |
37 |
| - |
38 |
| -| FileIO Type | Status | |
39 |
| -| ----------- | ----------- | |
40 |
| -| S3 | Done | |
41 |
| -| Local File | Done | |
42 |
| -| GCS | Not Started | |
43 |
| -| HDFS | Not Started | |
44 |
| - |
45 |
| -Our `FileIO` is powered by [Apache OpenDAL](https://github.com/apache/opendal), so it would be quite easy to |
46 |
| -expand to other service. |
47 |
| - |
48 |
| -### Table API |
49 |
| - |
50 |
| -#### Reader |
51 |
| - |
52 |
| -| Feature | Status | |
53 |
| -| ---------------------------------------------------------- | ----------- | |
54 |
| -| File based task planning | Done | |
55 |
| -| Size based task planning | Not started | |
56 |
| -| Filter pushdown(manifest evaluation, partition prunning) | In Progress | |
57 |
| -| Apply deletions, including equality and position deletions | Not started | |
58 |
| -| Read into arrow record batch | In Progress | |
59 |
| -| Parquet file support | Done | |
60 |
| -| ORC file support | Not started | |
61 |
| - |
62 |
| -#### Writer |
63 |
| - |
64 |
| -| Feature | Status | |
65 |
| -| ------------------------ | ----------- | |
66 |
| -| Data writer | Not started | |
67 |
| -| Equality deletion writer | Not started | |
68 |
| -| Position deletion writer | Not started | |
69 |
| -| Partitioned writer | Not started | |
70 |
| -| Upsert writer | Not started | |
71 |
| -| Parquet file support | Not started | |
72 |
| -| ORC file support | Not started | |
73 |
| - |
74 |
| -#### Transaction |
75 |
| - |
76 |
| -| Feature | Status | |
77 |
| -| --------------------- | ----------- | |
78 |
| -| Schema evolution | Not started | |
79 |
| -| Update partition spec | Not started | |
80 |
| -| Update properties | Not started | |
81 |
| -| Replace sort order | Not started | |
82 |
| -| Update location | Not started | |
83 |
| -| Append files | Not started | |
84 |
| -| Rewrite files | Not started | |
85 |
| -| Rewrite manifests | Not started | |
86 |
| -| Overwrite files | Not started | |
87 |
| -| Row level updates | Not started | |
88 |
| -| Replace partitions | Not started | |
89 |
| -| Snapshot management | Not started | |
90 |
| - |
91 |
| -### Integrations |
92 |
| - |
93 |
| -We will add integrations with other rust based data systems, such as polars, datafusion, etc. |
| 20 | +# Apache Iceberg™ Rust |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | +Rust implementation of [Apache Iceberg™](https://iceberg.apache.org/). |
| 25 | + |
| 26 | +Working on [v0.3.0 Release Milestone](https://github.com/apache/iceberg-rust/milestone/2) |
| 27 | + |
| 28 | +## Components |
| 29 | + |
| 30 | +The Apache Iceberg Rust project is composed of the following components: |
| 31 | + |
| 32 | +| Name | Release | Docs | |
| 33 | +|------------------------|------------------------------------------------------------|------------------------------------------------------| |
| 34 | +| [iceberg] | [![iceberg image]][iceberg link] | [![docs release]][iceberg release docs] | |
| 35 | +| [iceberg-datafusion] | - | - | |
| 36 | +| [iceberg-catalog-glue] | - | - | |
| 37 | +| [iceberg-catalog-hms] | [![iceberg-catalog-hms image]][iceberg-catalog-hms link] | [![docs release]][iceberg-catalog-hms release docs] | |
| 38 | +| [iceberg-catalog-rest] | [![iceberg-catalog-rest image]][iceberg-catalog-rest link] | [![docs release]][iceberg-catalog-rest release docs] | |
| 39 | + |
| 40 | +[docs release]: https://img.shields.io/badge/docs-release-blue |
| 41 | +[iceberg]: crates/iceberg/README.md |
| 42 | +[iceberg image]: https://img.shields.io/crates/v/iceberg.svg |
| 43 | +[iceberg link]: https://crates.io/crates/iceberg |
| 44 | +[iceberg release docs]: https://docs.rs/iceberg |
| 45 | + |
| 46 | +[iceberg-datafusion]: crates/integrations/datafusion/README.md |
| 47 | + |
| 48 | +[iceberg-catalog-glue]: crates/catalog/glue/README.md |
| 49 | + |
| 50 | +[iceberg-catalog-hms]: crates/catalog/hms/README.md |
| 51 | +[iceberg-catalog-hms image]: https://img.shields.io/crates/v/iceberg-catalog-hms.svg |
| 52 | +[iceberg-catalog-hms link]: https://crates.io/crates/iceberg-catalog-hms |
| 53 | +[iceberg-catalog-hms release docs]: https://docs.rs/iceberg-catalog-hms |
| 54 | + |
| 55 | +[iceberg-catalog-rest]: crates/catalog/rest/README.md |
| 56 | +[iceberg-catalog-rest image]: https://img.shields.io/crates/v/iceberg-catalog-rest.svg |
| 57 | +[iceberg-catalog-rest link]: https://crates.io/crates/iceberg-catalog-rest |
| 58 | +[iceberg-catalog-rest release docs]: https://docs.rs/iceberg-catalog-rest |
94 | 59 |
|
95 | 60 | ## Contribute
|
96 | 61 |
|
97 |
| -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. |
| 62 | +Apache Iceberg is an active open-source project, governed under the Apache Software Foundation (ASF). We are always open to people who want to use or contribute to it. Here are some ways to get involved. |
98 | 63 |
|
99 | 64 | - Start with [Contributing Guide](CONTRIBUTING.md).
|
100 | 65 | - Submit [Issues](https://github.com/apache/iceberg-rust/issues/new) for bug report or feature requests.
|
101 |
| -- Discuss at [dev mailing list ](mailto:[email protected]) ( [subscribe ](<mailto:[email protected]?subject=(send%20this%20email%20to%20subscribe)>) / [unsubscribe ](<mailto:[email protected]?subject=(send%20this%20email%20to%20unsubscribe)>) / [archives ](https://lists.apache.org/[email protected])) |
102 |
| -- Talk to community directly at [Slack #rust channel](https://join.slack.com/t/apache-iceberg/shared_invite/zt-1zbov3k6e-KtJfoaxp97YfX6dPz1Bk7A). |
| 66 | +- Discuss |
| 67 | + at [dev mailing list ](mailto:[email protected]) ( [subscribe ](<mailto:[email protected]?subject=(send%20this%20email%20to%20subscribe)>) / [unsubscribe ](<mailto:[email protected]?subject=(send%20this%20email%20to%20unsubscribe)>) / [archives ](https://lists.apache.org/[email protected])) |
| 68 | +- Talk to the community directly |
| 69 | + at [Slack #rust channel](https://join.slack.com/t/apache-iceberg/shared_invite/zt-1zbov3k6e-KtJfoaxp97YfX6dPz1Bk7A). |
| 70 | + |
| 71 | +The Apache Iceberg community is built on the principles described in the [Apache Way](https://www.apache.org/theapacheway/index.html) 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](https://www.apache.org/foundation/policies/conduct.html). |
| 72 | +## Users |
| 73 | + |
| 74 | +- [Databend](https://github.com/datafuselabs/databend/): An open-source cloud data warehouse that serves as a cost-effective alternative to Snowflake. |
| 75 | +- [iceberg-catalog](https://github.com/hansetag/iceberg-catalog): A Rust implementation of the Iceberg REST Catalog specification. |
103 | 76 |
|
104 | 77 | ## License
|
105 | 78 |
|
|
0 commit comments