Hi, Chris

I love this idea. One of the main reasons I started working on iceberg-rust is 
due to the potential that a rust-powered iceberg core can offer. 

I'm not an experienced ruby developer, but I'm willing to help with some CI 
setup or docs since I have some experience in the opendal community with ruby 
bindings.

On Mon, Aug 5, 2024, at 20:03, Renjie Liu wrote:
> Hi, Chris:
> 
> Thanks for raising this. Generally I'm +1 with building ruby bindings on top 
> of rust implementation, who would help introduce iceberg into the ruby 
> ecosystem.
> 
> On Mon, Aug 5, 2024 at 7:30 PM Chris Atkins <chri...@buildkite.com.invalid> 
> wrote:
>> 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
Xuanwo

https://xuanwo.io/

Reply via email to