apache/opendal
Apache OpenDAL: One Layer, All Storage. observed · 2026-08-28
Health v2 · maintenance only
99/100
- Activity 99
- Release rhythm 98
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-03. Adoption (stars, forks) is never an input.
- gap_med: 24
- age_days: 1661
- days_rel: 13
- days_push: 7
- n_releases_24m: 20
Adoption not part of the score
5341 stars · 817 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-29, confidence not recorded
Apache OpenDAL is an Open Data Access Layer providing one unified API to access object storage, file systems, cloud SaaS, databases, protocols, and key-value services across 50+ backends. Its Rust core is exposed through bindings for 17 languages including Python, Java, Go, Node.js, C, and C++, with composable layers for retry, timeout, logging, tracing, metrics, and throttling.
Use cases
- read and write files on S3, GCS, or Azure Blob through one API
- swap storage backends without rewriting application code
- access local filesystem and cloud object storage with the same interface
- add retry, timeout, and metrics to storage operations via composable layers
- generate presigned URLs for S3, GCS, or Azblob
- stream large objects without loading them into memory
- use one storage library across Rust, Python, Java, Go, and Node.js services
When to choose
- your application needs to support multiple storage backends behind a single API
- you want to avoid vendor lock-in to a specific cloud storage provider
- you are building data systems, AI pipelines, or analytics tools that must read/write diverse storage
- you need production-grade storage access with built-in retry, observability, and throttling
- you want a Rust-fast storage layer usable from your language of choice
When to avoid
- you only ever target one storage backend and its native SDK suffices
- you need backend-specific advanced features not covered by OpenDAL's unified semantics
- you require a stable C or C++ binding today, as those remain experimental
- you need synchronous-only Go access with no external libffi dependency
Facets
library · maturity stable
file-system object-storage sdk developer-tools middleware files cloud-computing developer-tools backend rust python jvm go cpp c cross-platform storage-abstraction object-storage s3 gcs azblob unified-api apache multi-language-bindings async data-engineering nodejs
10 sources
- readme: https://github.com/apache/opendal · fetched 2026-08-28 · 6d0d971352ff
- homepage: https://opendal.apache.org · fetched 2026-08-29 · 1cd1e29b0ad6
- site_page: https://opendal.apache.org/docs · fetched 2026-08-29 · 388f9a10fef6
- site_page: https://opendal.apache.org/docs/core · fetched 2026-08-29 · e99be4ea8e6d
- site_page: https://opendal.apache.org/docs/bindings/python · fetched 2026-08-29 · d6cb8758aadb
- site_page: https://opendal.apache.org/docs/bindings/java · fetched 2026-08-29 · effad5e3224a
- site_page: https://opendal.apache.org/docs/bindings/go · fetched 2026-08-29 · 206f18feaf63
- site_page: https://opendal.apache.org/docs/bindings/nodejs · fetched 2026-08-29 · 5ff166110c15
- site_page: https://opendal.apache.org/docs/bindings/c · fetched 2026-08-29 · 80cc1eae204b
- site_page: https://opendal.apache.org/docs/bindings/cpp · fetched 2026-08-29 · 552e0da9735c
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| apache/opendal | main | 99 |
For agents
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem