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.
We release the OpenDAL Python binding independently of the
(Rust core). For updates and compatibility, use the Python binding version instead of the opendal crate version.
Useful Links
User guide:
opendal.apache.org/docs/bindings/python
— install, connect, common tasks, and going to production.
API reference:
opendal.apache.org/docs/python
Services & configuration:
Upgrade guide:
Examples:
Installation
Install from PyPI:
pip install opendalOr install from
:
conda install conda-forge::opendalQuickstart
importopendal# 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
and
for the full guide.
Contributing
This project uses
as a command runner. For a complete guide on building, testing, and contributing, see
.
Used By
Check out the
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:
colored 3.1.1 (
,
), licensed under MPL-2.0.
option-ext 0.2.0 (
,
), licensed under MPL-2.0.
persy 1.8.1 (
,
), licensed under MPL-2.0.
The distribution includes the MPL-2.0 text in LICENSE-MPL-2.0.txt.
Musllinux wheels also bundle libgcc_s, the
, licensed under GPL-3.0-or-later WITH GCC-exception-3.1. The complete license and exception texts are included in LICENSE-libgcc.txt.