Skip to main content

opendalfs

Discussions Tests

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 uv and just, then run:

just install

Development Setup

This project uses:

  • Python 3.12+ for the Python interface
  • ruff for code formatting and linting
  • ty for type checking
  • pytest for testing

Run the local checks and unit tests with:

just check
just unit

For development setup and guidelines, see our Contributing Guide.

Benchmarks

The benchmark script compares Arrow direct, opendalfs (fsspec), and s3fs (fsspec) on MinIO.

just install
just bench --sizes 16,32,64 --files 4 --workers 4

Configure MinIO access via OPENDAL_S3_ENDPOINT, OPENDAL_S3_BUCKET, OPENDAL_S3_REGION, OPENDAL_S3_ACCESS_KEY_ID, and OPENDAL_S3_SECRET_ACCESS_KEY. Compose, tests, and benchmarks read the same values.

The benchmark target starts MinIO from the root docker-compose.yml. Stop it when you finish:

just bench-down

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:

Getting Help

License

Licensed under Apache License, Version 2.0.

Metadata

Release files for opendalfs 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for opendalfs 0.1.0
File Size Uploaded
opendalfs-0.1.0.tar.gz 75.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for opendalfs 0.1.0
File Interpreter ABI Platform
opendalfs-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 91.4 kB

Release files / opendalfs-0.1.0.tar.gz

Download URL opendalfs-0.1.0.tar.gz
Size 75.1 kB
Tags Source
SHA-256 checksum
How to use checksums
5ceaeccc0852ef10c8ef2ce20e5927dbc18083909c06550ad36f81bcacb5774d
BLAKE2b-256 checksum
How to use checksums
0d23fdb4d34f08ac68a27b2d553256e13b15ce139916d36bab33f9a0e71e8770
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 26, 2026.

Transparency log

Release files / opendalfs-0.1.0-py3-none-any.whl

Download URL opendalfs-0.1.0-py3-none-any.whl
Size 16.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b180c9dae767053023ea4923250ce66d40a9bcad2e6f947df5ec8152208365b
BLAKE2b-256 checksum
How to use checksums
ec7dbaac5ab7f0fcd4d4f06484531e30dbee2eaf924cc0bf007572bc54bbc14a
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 26, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.0

2 release files

This release

0.1.0 This release

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page