This package intends to build a native python binding for Apache OpenDAL.
pip install opendal
fs service example:
import opendal op = opendal.Operator("fs", root="/tmp") op.write("test.txt", b"Hello World") print(op.read("test.txt")) print(op.stat("test.txt").content_length)
Or using the async API:
import asyncio async def main(): op = opendal.AsyncOperator("fs", root="/tmp") await op.write("test.txt", b"Hello World") print(await op.read("test.txt")) asyncio.run(main())
s3 service example:
import opendal op = opendal.Operator("s3", root="/tmp", bucket="your_bucket_name", region="your_region") op.write("test.txt", b"Hello World") print(op.read("test.txt")) print(op.stat("test.txt").content_length)
Or using the async API:
import asyncio async def main(): op = opendal.AsyncOperator("s3", root="/tmp", bucket="your_bucket_name", region="your_region") await op.write("test.txt", b"Hello World") print(await op.read("test.txt")) asyncio.run(main())
Setup virtualenv:
uv venv --python 3.11
Install all the dependencies:
uv sync --all-groups --all-extras
Run some tests:
# To run `test_write.py` and use `fs` operator OPENDAL_TEST=fs OPENDAL_FS_ROOT=/tmp uv run pytest -vk test_write
Build API docs:
uv run mkdocs build
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.