tree: 051071694654130327ec574e6d1d269a9b94c81b
  1. benchmark/
  2. docs/
  3. examples/
  4. python/
  5. scripts/
  6. src/
  7. template/
  8. tests/
  9. .gitignore
  10. Cargo.toml
  11. CONTRIBUTING.md
  12. DEPENDENCIES.md
  13. DEPENDENCIES.rust.tsv
  14. justfile
  15. LICENSE
  16. LICENSE-libgcc.txt
  17. LICENSE-MPL-2.0.txt
  18. mkdocs.yml
  19. NOTICE
  20. pyproject.toml
  21. README.md
  22. ruff.toml
  23. upgrade.md
  24. users.md
  25. uv.lock
bindings/python/README.md

Apache OpenDAL™ Python Binding

Status PyPI Website

This package provides a native Python binding for Apache OpenDAL™, a data access layer that allows you to access various storage services in a unified way.

OpenDAL Architecture

We release the OpenDAL Python binding independently of the opendal crate (Rust core). For updates and compatibility, use the Python binding version instead of the opendal crate version.

Useful Links

Installation

Install from PyPI:

pip install opendal

Or install from Anaconda main:

conda install opendal

Or install from conda-forge:

conda install conda-forge::opendal

Quickstart

import opendal

# Configure a service, then build an operator from it.
op = opendal.Operator("fs", root="/tmp")

# The same verbs work on every service.
op.write("test.txt", b"Hello World")
print(op.read("test.txt"))
print(op.stat("test.txt").content_length)

To use a real backend, change the scheme and pass its configuration — the operations stay identical:

op = opendal.Operator("s3", bucket="your_bucket", region="your_region")

OpenDAL also has a first-class async API via opendal.AsyncOperator. See Getting started and Connecting to your storage for the full guide.

Contributing

This project uses just as a command runner. For a complete guide on building, testing, and contributing, see CONTRIBUTING.md.

Used By

Check out the users list for more details on who is using OpenDAL.

License and Trademarks

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

Apache OpenDAL, OpenDAL, and Apache are either registered trademarks or trademarks of the Apache Software Foundation.

Third-party software

Compiled distributions include the following Mozilla Public License 2.0 components. Their source code is available from the linked project pages:

The distribution includes the MPL-2.0 text in LICENSE-MPL-2.0.txt.

Musllinux wheels also bundle libgcc_s, the GCC runtime library, licensed under GPL-3.0-or-later WITH GCC-exception-3.1. The complete license and exception texts are included in LICENSE-libgcc.txt.