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 opendal crate (Rust core). For updates and compatibility, use the Python binding version instead of the opendal crate version.
upgrade.mddocs/examplespip install opendal
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.
This project uses just as a command runner. For a complete guide on building, testing, and contributing, see CONTRIBUTING.md.
Check out the users list for more details on who is using OpenDAL.
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.