apache/opendal

Apache OpenDAL: One Layer, All Storage.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 50 minutes ago
Added to GitGenius on September 12th, 2026
Created on February 14th, 2022
Open Issues & Pull Requests: 324 (+0)
GitHub issues: Enabled
Number of forks: 824
Total Stargazers: 5,375 (+0)
Total Subscribers: 37 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 18.3 hours
Mean response time: 26.0 days
90th percentile: 40.7 days
Tracked items: 849

Most active contributors

Sign in to see contributor activity.

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 47% of open issues come from outside the core team, a mix of external reports and the maintainers' own roadmap. Work labelled "bug" is answered fastest, typically in about 5 hours, while "good first vibe" waits about 5 days. 43% of tracked open issues have had no activity in three months. Only 9% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 205
New in 7 days: 15
Closed in 7 days: 7
Avg open age: 397 days
Stale 30+ days: 165
Stale 90+ days: 135

Recent activity

Opened in 7 days: 14
Closed in 7 days: 7
Comments in 7 days: 4
Events in 7 days: 8

Top labels

  • enhancement (285)
  • bug (229)
  • releases-note/feat (159)
  • good first issue (147)
  • help wanted (145)
  • core (112)
  • good first vibe (80)
  • releases-note/fix (74)

Detailed Description

Apache OpenDAL is an open data access layer that provides a unified interface for accessing diverse storage backends and services across multiple programming languages.

The project solves the fragmentation problem of working with different storage systems—object storage, file systems, cloud SaaS, databases, protocols, and key-value services—each with its own API. Rather than learning separate interfaces for each backend, developers use a single abstraction called the Operator. The core is built in Rust with a composable architecture where applications only pay the performance cost for backends and capabilities they actually enable. Production concerns like retry logic, timeouts, logging, tracing, metrics, throttling, and concurrency control are implemented as reusable layers that can be stacked on top of the core access layer.

Adoption makes sense for teams building applications or data systems that need to work with multiple storage backends or want to avoid vendor lock-in. The tool suits projects where a unified storage interface reduces complexity and maintenance burden. Language bindings exist for multiple runtimes, each following its language's ecosystem conventions, though each binding maintains its own version number independent of the Rust core.

The project demonstrates sustained development activity with regular engagement across multiple dimensions. Contributions span language bindings, new service implementations, and layer additions, indicating an active extension ecosystem. The codebase receives ongoing refinement and bug fixes across its core abstractions and service implementations. Documentation and examples are maintained to support adoption across different use cases and languages.