opendal icon indicating copy to clipboard operation
opendal copied to clipboard

new feature: Basic Ruby binding

Open erickguan opened this issue 1 year ago • 2 comments

Feature Description

I am interested in helping release the first Ruby binding. Before release, I would happy to get OpenDAL Ruby binding to a demoable state.

Problem and Solution

The Ruby binding in OpenDAL implements several methods within the Operator and Metadata classes. I would like to see the following features added to the Ruby binding:

  • Lister
  • Basic IO class (similar to File in Python binding)
  • Capability
  • Retry layer
  • Operator:
    • list
    • create_dir
    • delete
    • rename
    • remove_all
    • copy
    • open
    • layer

With these features implemented, I could create a few examples in Ruby to share.

Additional Context

Other problems:

  • The prevalent class loader, "Zeitwerk", will not load OpenDAL without additional configuration. Zeitwerk expects lib/my_gem/version.rb to define MyGem::VERSION, for example.
  • Fiber, Ruby's cooperative concurrency mechanism, has relatively low adoption. However, OpenDAL includes features that are only implemented asynchronously, which could pose a challenge when mapping them to Ruby's concurrency model.

Are you willing to contribute to the development of this feature?

  • [X] Yes, I am willing to contribute to the development of this feature.

erickguan avatar Oct 22 '24 21:10 erickguan

Wow, @erickguan, that's fantastic! I'm looking forward to working with you.

Xuanwo avatar Oct 23 '24 02:10 Xuanwo

I’m grateful that you got the project rolling and appreciate your vision.

erickguan avatar Oct 23 '24 20:10 erickguan