Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new feature: Basic Ruby binding #5227

Open
1 task done
erickguan opened this issue Oct 22, 2024 · 2 comments
Open
1 task done

new feature: Basic Ruby binding #5227

erickguan opened this issue Oct 22, 2024 · 2 comments
Labels
enhancement New feature or request

Comments

@erickguan
Copy link
Contributor

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?

  • Yes, I am willing to contribute to the development of this feature.
@erickguan erickguan added the enhancement New feature or request label Oct 22, 2024
@Xuanwo
Copy link
Member

Xuanwo commented Oct 23, 2024

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

@erickguan
Copy link
Contributor Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants