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