Skip to content

new feature: Basic Ruby binding #5227

@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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions