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/
