Skip to main content

Apache OpenDAL™ Python Binding

Project description

Apache OpenDAL™ Python Binding

Status PyPI Website

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.

OpenDAL Python Usage Demo

Note: This binding has its own independent version number, which may differ from the Rust core version. When checking for updates or compatibility, always refer to this binding's version rather than the core version.

Useful Links


Features

  • Unified API: Access S3, GCS, Azure Blob, HDFS, FTP, and more with the same set of commands.
  • Native Performance: Built in Rust for high performance and safety.
  • Async Support: First-class async API for modern Python applications.
  • Easy to Use: Simple and intuitive API design.

Installation

Install the package directly from PyPI:

pip install opendal

Usage

Here are a few examples of how to use OpenDAL with different storage backends.

Local Filesystem (fs)

import opendal

# Initialize the operator for the local filesystem
op = opendal.Operator("fs", root="/tmp")

# Write data to a file
op.write("test.txt", b"Hello World")

# Read data from the file
content = op.read("test.txt")
print(op.read("test.txt"))

# Get metadata
metadata = op.stat("test.txt")
print(f"Content length: {metadata.content_length}") # Output: 11

Amazon S3

The API remains the same—just change the scheme and credentials.

import opendal

# Initialize the operator for S3
op = opendal.Operator(
    "s3",
    bucket="your_bucket_name",
    region="your_region",
    root="/path/to/root"
)

op.write("test.txt", b"Hello World")
print(op.read("test.txt"))
print(op.stat("test.txt").content_length)

Async Usage (s3)

OpenDAL also provides a fully asynchronous API.

import asyncio
import opendal

async def main():
    # Use AsyncOperator for async operations
    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())

Development

This project uses just as a command runner to simplify the development workflow.

  1. Clone the repository and set up the environment:

    # This will create a virtual environment and install all dependencies
    just setup
    
  2. Run tests:

    # Example: Run tests for the 'fs' operator
    OPENDAL_TEST=fs OPENDAL_FS_ROOT=/tmp just test
    

For a complete guide on building, testing, and contributing, please see our CONTRIBUTING.md file.


Used By

Check out the users list 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

opendal_panoramax_fork-0.47.1-cp314-cp314t-manylinux_2_34_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ x86-64

opendal_panoramax_fork-0.47.1-cp313-cp313t-manylinux_2_34_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.34+ x86-64

opendal_panoramax_fork-0.47.1-cp312-cp312-manylinux_2_34_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

opendal_panoramax_fork-0.47.1-cp311-abi3-manylinux_2_34_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ x86-64

opendal_panoramax_fork-0.47.1-cp310-cp310-manylinux_2_34_x86_64.whl (5.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

File details

Details for the file opendal_panoramax_fork-0.47.1-cp314-cp314t-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: opendal_panoramax_fork-0.47.1-cp314-cp314t-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 15.0 MB
  • Tags: CPython 3.14t, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"CachyOS Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for opendal_panoramax_fork-0.47.1-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 07a085d4394acdfbd77295945f6676513ad9315560241ded18fc5dc39331eeac
MD5 951e7f5a2ce87a47adc4bdc4ced24d3e
BLAKE2b-256 7ca6cc581c4bd9112058187840eb615a5bf6b850c4950a45173574d7076bc6f0

See more details on using hashes here.

File details

Details for the file opendal_panoramax_fork-0.47.1-cp313-cp313t-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: opendal_panoramax_fork-0.47.1-cp313-cp313t-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 15.0 MB
  • Tags: CPython 3.13t, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"CachyOS Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for opendal_panoramax_fork-0.47.1-cp313-cp313t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 47c6668b399515d1eae79dfc85b66b54f85bb56c1c0cff86175dead84704f735
MD5 829749b1b6e1a5165e03cbca72997cd5
BLAKE2b-256 afa4e6d18ccddee0a84829fdc34624687c1439e73bd09a85f3f35b8655e85a12

See more details on using hashes here.

File details

Details for the file opendal_panoramax_fork-0.47.1-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: opendal_panoramax_fork-0.47.1-cp312-cp312-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 15.0 MB
  • Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"CachyOS Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for opendal_panoramax_fork-0.47.1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 85a470719f13324b51638923851331bd133720231ccd2d21233b62667eef53d9
MD5 160c43548b78301eed83a61abcb5dc3f
BLAKE2b-256 4e5e4ffa589d11a7b927025d29bdf486814747c0caede49388eb1933a9963aee

See more details on using hashes here.

File details

Details for the file opendal_panoramax_fork-0.47.1-cp311-abi3-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: opendal_panoramax_fork-0.47.1-cp311-abi3-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 15.0 MB
  • Tags: CPython 3.11+, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"CachyOS Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for opendal_panoramax_fork-0.47.1-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 50b64a4b970933fc48fe9e0ca3f9c62e454a1557baa6468f4ccef6ab78504f95
MD5 b04884262233d2e5039748e63fbfec7b
BLAKE2b-256 9d12053409540195558367dd89c34fa02c946ae432028e6bfeb31b7f1aa94fbf

See more details on using hashes here.

File details

Details for the file opendal_panoramax_fork-0.47.1-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

  • Download URL: opendal_panoramax_fork-0.47.1-cp310-cp310-manylinux_2_34_x86_64.whl
  • Upload date:
  • Size: 5.5 MB
  • Tags: CPython 3.10, manylinux: glibc 2.34+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"CachyOS Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for opendal_panoramax_fork-0.47.1-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4465a313ad476c1608bd436af9493a14100bdb4703d2688e5091b302c3f74398
MD5 62cf2f2d1fde8a15c92bf93556f661b8
BLAKE2b-256 4f4bd3fe7853c78c1ee5f1c4fb4852a586cec2966faf1963bec09e3da5e15072

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page