feat(io): Make `Storage` a trait
Which issue does this PR close?
- Closes #1314
What changes are included in this PR?
Are these changes tested?
Added some tests for the new storage builder and registry, but mostly relying on the existing tests
Hi, @liurenjie1024 and @CTTY, I have thinked about this again. I think we can split the concept around fileio and fileio-provider (or just using the words in this PR, Storage and Fileio).
As discussed in https://github.com/apache/iceberg-rust/issues/1797, sometimes people don't care about FileIO (the thing in java) at all. They will initiate, build and manage their own IO abstraction and only want to be used as Storage in the iceberg-rust.
So, I think we should make FileIO optional in the future and only depends on Storage. However it can be tricky since we do need the power to build a storage from s3://bucket/name. We can discuss them face to face and come up with a proposal.
Hi, @liurenjie1024 and @CTTY, I have thinked about this again. I think we can split the concept around
fileioandfileio-provider(or just using the words in this PR,StorageandFileio).As discussed in #1797, sometimes people don't care about FileIO (the thing in java) at all. They will initiate, build and manage their own IO abstraction and only want to be used as
Storagein the iceberg-rust.So, I think we should make
FileIOoptional in the future and only depends onStorage. However it can be tricky since we do need the power to build a storage froms3://bucket/name. We can discuss them face to face and come up with a proposal.
I'm a little confused about your point, would you mind to write a more detailed proposal?
I'm a little confused about your point, would you mind to write a more detailed proposal?
Will do