Skip to content

new feature: Basic Ruby binding #5227

Open
@erickguan

Description

@erickguan

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions