Thank you for working on this! I'll definitely take a look.

On Mon, Oct 20, 2025, at 10:46, Shawn Chang wrote:
> Hi folks,
> 
> I finally got a chance to get back to the effort of making Storage a trait — 
> thanks again for all the valuable feedback!
> 
> It looks like we’re aligned on Option 2 from the initial draft: making 
> Storage the centralized place for I/O, with other components like FileIO and 
> Input/OutputFile delegating their operations to it.
> 
> I’ve posted another revision of the design doc 
> <https://docs.google.com/document/d/1-CEvRvb52vPTDLnzwJRBx5KLpej7oSlTu_rg0qKEGZ8/edit?tab=t.dgr4vjtmzh92>
>  to reflect our discussions so far — please feel free to take a look and 
> share any additional thoughts.
> Also, the POC code has been posted here: 
> https://github.com/apache/iceberg-rust/pull/1755
> 
> Thanks again for everyone’s input!
> 
> Best,
> Shawn
> 
> On Thu, Sep 18, 2025 at 11:52 AM Shawn Chang <[email protected]> wrote:
>> Hi all,
>> 
>> Iceberg-rust currently has a static FileIO implementation backed by OpenDAL, 
>> and the discussion around making FileIO a trait has been ongoing in the 
>> Iceberg Rust community, and we’ve recently reached consensus in the GitHub 
>> issue <https://github.com/apache/iceberg-rust/issues/1314> to instead make 
>> the underlying Storage a trait while keeping FileIO as a struct. This change 
>> should give users the flexibility to customize FileIO behavior, similar to 
>> how FileIO works in Iceberg Java.
>> 
>> I’ve put together a design doc that outlines the problem, proposed design, 
>> and some code snippets from my exploration of different approaches. You can 
>> find it here:
>> 👉 
>> https://docs.google.com/document/d/1-CEvRvb52vPTDLnzwJRBx5KLpej7oSlTu_rg0qKEGZ8/edit?usp=sharing
>> 
>> Please feel free to join the discussion. Would love your feedback on it!
>> 
>> Best,
>> Shawn
Xuanwo

https://xuanwo.io/

Reply via email to