meteorgan commented on code in PR #5680: URL: https://github.com/apache/opendal/pull/5680#discussion_r1976425384
########## website/blog/2025-03-01-2025-roadmap/index.md: ########## @@ -0,0 +1,80 @@ +--- +title: "Apache OpenDAL 2025 Roadmap: Perfecting Production Adoption" +date: 2025-03-01 +tags: [announcement] +authors: xuanwo +--- + +Hi everyone, long time no see. Although we have been actively developing OpenDAL and consistently releasing updates, we haven’t provided a clear overview of where OpenDAL is heading. This post aims to address that. Here, we will discuss OpenDAL's current position and the future directions we are moving toward. + +I hope this post serves as a guide for our development, encourages more people to contribute, and ultimately helps achieve the vision of OpenDAL. + +<!--truncate--> + +## What's OpenDAL? + +OpenDAL (`/ˈoʊ.pən.dæl/`, pronounced "OH-puhn-dal") is an Open Data Access Layer that enables seamless interaction with diverse storage services. Our VISION is [**One Layer, All Storage**](https://opendal.apache.org/vision), and our core principles are Open Community, Solid Foundation, Fast Access, Object Storage First, and Extensible Architecture. + +We are building: + +- [A core library built in Rust](https://crates.io/crates/opendal) that supports all services at zero cost and offers unified retry, concurrency, logging, tracing, metrics, timeout and more layers. +- Language bindings for [Python](https://pypi.org/project/opendal/), [Java](https://central.sonatype.com/artifact/org.apache.opendal/opendal-java), [Node.js](https://www.npmjs.com/package/opendal), C/C++, and more. +- Integrations with various frameworks, including [Parquet](https://crates.io/crates/parquet-opendal), [FUSE](https://crates.io/crates/fuse3_opendal), [DAV server](https://github.com/messense/dav-server-rs), and others. +- Binaries for different use cases, such as [CLI](https://crates.io/crates/oli) and [FUSE](https://crates.io/crates/ofs). + +In short, through OpenDAL, users can access ALL storage services within ONE layer. + +## Where's OpenDAL? + +OpenDAL's rust core has already released 143 versions, has [67 reverse dependencies](https://crates.io/crates/opendal/reverse_dependencies) listed on [crates.io](http://crates.io/), and is used by [612 projects](https://github.com/apache/opendal/network/dependents) as recorded on GitHub. + +OpenDAL's production users include databases such as [Databend](https://github.com/databendlabs/databend), [Greptime](https://github.com/GreptimeTeam/greptime), and [RisingWave](https://github.com/risingwavelabs/risingwave), as well as tools like [Loco](https://loco.rs/), [sccache](https://github.com/mozilla/sccache), and [Vector](https://vector.dev/). + + + +Apart from OpenDAL's Rust core, its various language bindings have also seen significant growth over the past year. Take python binding as an example. [Dify](https://github.com/langgenius/dify/), an LLM app development platform, is using opendal python to access different storage services. + + + +## What's next for OpenDAL? + +The following is the famous technology adoption lifecycle curve. If I were to indicate the position of OpenDAL, I would say it is at the end of the Innovators stage and moving toward the Early Adopters stage. + + +(picture from TechTarget [technology adoption lifecycle](https://www.techtarget.com/searchcio/definition/technology-adoption-lifecycle)) + +Innovators are adopting OpenDAL. Projects like Databend, RisingWave, Greptime, and sccache have been using OpenDAL in production for years. However, early adopters are still hesitant to use OpenDAL—and they have valid reasons. + +For examples: + +- OpenDAL hasn't reached version 1.0 yet and still introduces breaking changes from time to time, sometimes even requiring code modifications for an OpenDAL upgrade. This also creates a burden for libraries that depend on OpenDAL, as every breaking change affects them as well. +- OpenDAL lacks comprehensive documentation, particularly for its bindings in Python and Java. Users need to invest significant effort and love to integrate OpenDAL bindings into their projects. +- OpenDAL lacks some important features, such as checksum support, caching, metrics of underlying http requests and initialization from a URI. + +I believe we should perfect production adoption in 2025 to get OpenDAL ready for early adopters. Only in this way can we implement our vision: **One Layer, All Storage.** + +## What to do in 2025? + +Our plans for 2025 include the following: + +### Features Needed in Production + +In 2025, we plan to implement the following features that importmant for production adoption: Review Comment: that **are** important -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
