Skip to main content

Apache OpenDAL™ Python Binding

A native Python binding for OpenDAL: access S3, GCS, Azure Blob, HDFS, 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 stable, published to PyPI.

Capabilities

  • Sync and async — use Operator or AsyncOperator with the same verbs.
  • File-like objectsop.open(path, "rb") returns a familiar read/write/seek file you can stream through.
  • All services included — the wheel bundles every backend; there are no build flags to enable.
  • Presigned URLs for services that support them (async API).

Installation

pip install 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, presign, and more.
  4. Going to production — retries, errors, and capability checks.