Apache OpenDAL: One Layer, All Storage.

Clone this repo:
  1. 043977e chore(services): unify scheme usage (#6764) by Qinxuan Chen · 7 hours ago main
  2. a2d7c0d feat(services/compfs): implement IoVectoredBuf for Buffer (#6762) by meteorgan · 9 hours ago
  3. 24d2188 chore: rename delete module => deleter module; ServiceAccessor => ServiceBackend (#6757) by Qinxuan Chen · 9 hours ago
  4. 3e39648 chore: cleanup some useless code related to services that were removed due to lack of maintenance (#6763) by Qinxuan Chen · 30 hours ago
  5. 81e2653 refactor(services): impl Debug for all service builders (#6756) by Qinxuan Chen · 3 days ago

Apache OpenDAL™: One Layer, All Storage.

OpenDAL (/ˈoʊ.pən.dæl/, pronounced “OH-puhn-dal”) is an Open Data Access Layer that enables seamless interaction with diverse storage services.

OpenDAL's development is guided by its vision of One Layer, All Storage and its core principles: Open Community, Solid Foundation, Fast Access, Object Storage First, and Extensible Architecture. Read the explained vision at OpenDAL Vision.

For ANY languages

NameReleaseDocsUsed By
Rust CoreRust Core ImageDocs Release Docs DevRust Core Users Image
C Binding-Docs DevC Binding Users Image
Cpp Binding-Docs Dev-
D Binding---
Dart Binding---
Dotnet Binding---
Go BindingGo Binding ImageDocs Release-
Haskell Binding---
Java BindingJava Binding ImageDocs Release Docs DevJava Binding Users Image
Lua Binding---
Node.js BindingNode.js Binding ImageDocs Dev-
OCaml Binding---
PHP Binding---
Python BindingPython Binding ImageDocs DevPython Binding Users Image
Ruby Binding---
Swift Binding---
Zig Binding---

For ANY methods

NameDescriptionRelease
oliAccess data via Command Line (alternative to s3cmd, s3cli, azcopy)oli image
ofsAccess data via POSIX file system API (alternative to s3fs)ofs image

For ANY integrations

NameDescriptionReleaseDocs
dav-server-opendalfsa dav-server-rs implementation using opendal.dav-server imageDocs Release Docs Dev
object_store_opendalan object_store implementation using opendal.object_store imageDocs Release Docs Dev
unftp-sbe-opendalan unftp storage backend implementation using opendal.unftp-sbe imageDocs Release Docs Dev
parquet_opendalProvides parquet efficient IO utilitiesparquet imageDocs Release Docs Dev

For ANY services

TypeServices
Standard Storage Protocolsftp http sftp webdav
Object Storage Servicesazblob cos gcs obs oss s3
b2 openstack_swift upyun vercel-blob
File Storage Servicesfs alluxio azdls azfile compfs
dbfs gridfs hdfs hdfs-native ipfs webhdfs
Consumer Cloud Storage Servicealiyun-drive gdrive onedrive dropbox koofr
pcloud seafile yandex-disk
Key-Value Storage Servicescacache cloudflare-kv dashmap memory etcd
foundationdb persy redis rocksdb sled
redb tikv
Database Storage Servicesd1 mongodb mysql postgresql sqlite surrealdb
Cache Storage Servicesghac memcached mini-moka moka vercel-artifacts
Git Based Storage Serviceshuggingface

Examples

The examples are available at here.

Documentation

The documentation is available at https://opendal.apache.org.

Contribute

OpenDAL is an active open-source project. We are always open to people who want to use it or contribute to it. Here are some ways to go.

Branding

The first and most prominent mentions must use the full form: Apache OpenDAL™ of the name for any individual usage (webpage, handout, slides, etc.) Depending on the context and writing style, you should use the full form of the name sufficiently often to ensure that readers clearly understand the association of both the OpenDAL project and the OpenDAL software product to the ASF as the parent organization.

For more details, see the Apache Product Name Usage Guide.

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.