Hi there, I'm following up on a discussion <https://apache-iceberg.slack.com/archives/C05HTENMJG4/p1722750831522969> from the #rust channel on the Iceberg community slack, so starting a thread here too.
After seeing Xuanwo's and Song's recent proposals around leveraging iceberg-rust to power parts of PyIceberg, I was thinking it could be valuable to follow a similar pattern to build out Ruby bindings for Iceberg. Being able to stand on the shoulders of iceberg-rust could really help build out a robust Ruby interface, and also offer some opportunities for interop with things like datafusion and opendal. Recently in the Ruby ecosystem, writing native extensions in Rust has become more popular, and tools like rb-sys and magnus provide a lot of the required infrastructure. A good example is ruby-polars, which provides an interface that is idiomatic Ruby but retains good symmetry with the APIs exposed by py-polars. I wonder if we could eventually aim for a similar type of symmetry between PyIceberg and a Ruby gem? Is there much interest in this? I've started playing around with some of the basics, and started out with a plain native Ruby implementation of some of the basic metadata APIs, but quickly realised that building on iceberg-rust could be more productive than writing it all from scratch. *References* https://lists.apache.org/thread/5570vbdkrk7mdswt4jqy45lv7y58pz4b https://lists.apache.org/thread/33c0nkc3k6646lvro1lv22pvhwlp50ss https://github.com/apache/iceberg-rust/pull/518 *Prior Art in Ruby* https://github.com/matsadler/magnus https://github.com/oxidize-rb/rb-sys https://github.com/ankane/ruby-polars https://github.com/apache/opendal/tree/main/bindings/ruby Thanks, Chris Atkins