Skip to main content

Apache OpenDAL™ Ruby Binding

A native Ruby binding for OpenDAL: access S3, GCS, Azure Blob, the local filesystem, and 50+ more services through one API, with the performance of the Rust core underneath.

New to the model behind the API? Read Concepts first — service, operator, layer, operation are the same four ideas in every language.

note

This binding has its own version number, independent of the Rust core. Check compatibility against the binding's version, not the core's.

Status

Released and published to RubyGems.

Capabilities

  • Synchronous — every operation runs on the calling thread; there is no async API.
  • One API for every service — the gem bundles all backends, selected by a scheme string at construction time.
  • File-like IOop.open(path, "r") returns a familiar read/write/seek/readline object you can stream through.
  • Middlewares (OpenDAL layers) for retry, concurrency limits, throttling, and timeouts — see Going to production.

Installation

gem install opendal

Or add it to your Gemfile:

# Gemfile
gem "opendal"

Next steps

  1. Getting started — a runnable program, then a real backend.
  2. Connecting to your storage — build an operator for any service.
  3. Common tasks — read, write, stream, list, copy, and rename.
  4. Going to production — middlewares, errors, and capability checks.