liurenjie1024 opened a new issue, #1467: URL: https://github.com/apache/iceberg-rust/issues/1467
During development I found that some times in the core `iceberg` crate, we need some external dependencies such as `MemoryCatalog`, which is useful in following cases: 1. In doc example: https://github.com/apache/iceberg-rust/pull/1436 2. In unit tests, such as transaction api So I want to create an `iceberg-catalog-api` crate to move `Catalog` and `CatalogLoader` trait into this module, so that we have following dependency graph: ``` iceberg-catalog-api | iceberg-catalog-memory |(dev dependency) iceberg ``` ## Alternative 1: Moving `iceberg-catalog-memory` to `iceberg` crate While this solves the problem we are currently facing, this have several disadvantages like following: 1. It makes `iceberg` crate larger. 2. It's not scalable. For example when we finished refactoring of `FileIO`, we may still facing similar issue, and we hope to adopt the proposed approach. ## Alternative 2: Creating an `iceberg-api` crate to contain all trait definition. This is similar to current proposal, and similar to the java approach. The only problem is that it violated smaller crate principal, but I'm not 100% sure that this is worse. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org For additional commands, e-mail: issues-h...@iceberg.apache.org