opendalfs
opendalfs is a Python-based interface for file systems that enables interaction with different storage services by Apache OpenDAL. Through opendalfs, users can utilize fsspec's standard API to operate on all storage services supported by OpenDAL.
URL Protocols
opendalfs registers multiple fsspec protocols in the form of opendal+<service>, for example:
import fsspec
f = fsspec.open(
"opendal+s3://my-bucket/path/to/file",
mode="rb",
endpoint="http://localhost:9000",
access_key_id="minioadmin",
secret_access_key="minioadmin",
)
The URL host is mapped to the service container (e.g. bucket for s3/gcs, container for azblob), and the URL path is used as the object key.
For other OpenDAL services, register protocols at runtime:
import opendalfs
opendalfs.register_opendal_service("oss")
Installation
Basic Installation
pip install opendalfs
Development Installation
# Install all development dependencies
pip install "opendalfs[all]"
# Or install specific groups
pip install "opendalfs[dev,test]" # for development and testing
Development Setup
This project uses:
- Python 3.12+ for the Python interface
- ruff for code formatting and linting
- pytest for testing
For development setup and guidelines, see our Contributing Guide.
Benchmarks
The benchmark script compares Arrow direct, opendalfs (fsspec), and s3fs (fsspec) on MinIO.
uv sync --extra bench
uv run python bench/bench_read_write.py --sizes 16,32,64 --files 4 --workers 4
Configure MinIO access via OPENDAL_S3_ENDPOINT, OPENDAL_S3_BUCKET,
OPENDAL_S3_ACCESS_KEY_ID, and OPENDAL_S3_SECRET_ACCESS_KEY.
You can run MinIO locally with the official binary, for example:
./minio server ./minio-data --console-address ":9001"
For profiling, you can install a tool with uv (for example py-spy) and run:
uv tool install py-spy
uv tool run py-spy record -o bench.svg -- python bench/bench_read_write.py --sizes 16,32,64 --files 4 --workers 4
High write concurrency can stall on some systems. If runs time out, reduce
--fsspec-workers.
Status
See Tracking issues of 0.1.0 version for opendalfs
Contributing
opendalfs is an exciting project currently under active development. Whether you're looking to use it in your projects or contribute to its growth, there are several ways you can get involved:
- Follow the Contributing Guide to contribute
- Create new Issue for bug reports or feature requests
- Join discussions in Discussions
Getting Help
- Submit issues for bug reports
- Ask questions in discussions
License
Licensed under Apache License, Version 2.0.
Metadata
Release files for opendalfs 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| opendalfs-0.0.3.tar.gz | 69.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| opendalfs-0.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 84.0 kB
Release files / opendalfs-0.0.3.tar.gz
| Download URL | opendalfs-0.0.3.tar.gz |
|---|---|
| Size | 69.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ea56f9af936fd6ed1344574d2b5deb6875bb29c7182a9e2a26c0879668323e9a
|
|
BLAKE2b-256 checksum How to use checksums |
734931e6a2415c84519d8f251608977fd69d729479a679dfb472ed1d52ee1e06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 21, 2026.
Transparency logRelease files / opendalfs-0.0.3-py3-none-any.whl
| Download URL | opendalfs-0.0.3-py3-none-any.whl |
|---|---|
| Size | 14.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
feacbdcc6844861943ada0366c1ff30acc218d294132e48c3ee854ca56f665cd
|
|
BLAKE2b-256 checksum How to use checksums |
685a6bda5ca02415698ebd9322ccc9ab3e9df374d8d5a702b9d424972985307b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 21, 2026.
Transparency log