Xuanwo commented on code in PR #3086:
URL: 
https://github.com/apache/incubator-opendal/pull/3086#discussion_r1326948058


##########
website/blog/2023-09-14-owo-1/index.md:
##########
@@ -0,0 +1,152 @@
+---
+title: "OwO #1: The v0.40 Release"
+date: 2023-09-15
+slug: owo-1
+tags: [owo]
+authors:
+  - name: Xuanwo
+    url: https://github.com/Xuanwo
+    image_url: https://github.com/Xuanwo.png
+---
+
+> OwO (Outcome, Working, Outlook) is our blog series where we share our 
current work status and future plans.
+
+Hello! It's been a while since our last update. We've been hard at work 
determining the optimal way to implement new features and improvements. We're 
thrilled to announce that we'll soon be releasing v0.40.
+
+This post is structured into three main sections:
+
+- Outcome (1st `O` in `OwO`): Summarizes the key accomplishments in the v0.40 
release.
+- Working (the `w` in `OwO`): Provides an update on our current work.
+- Outlook (2nd `O` in `OwO`): Discusses what lies ahead for OpenDAL.
+
+## Outcome
+
+OpenDAL now comprises four primary components:
+
+- Core: The core library written in Rust.
+- Bindings: Language bindings powered by the OpenDAL Rust core.
+- Applications: Applications built using the OpenDAL Rust core.
+- Integrations: Collaborations with other projects.
+
+### Core
+
+#### Unifying Append and Write Functions
+
+OpenDAL has supported `append` operations since `v0.36`. We've found, however, 
that this led to significant duplication between append and write. As a result, 
we've streamlined the two functionalities into a single write function. Our 
users can now:
+
+```rust
+let mut w = op.writer_with("test.txt").append(true).await?;
+w.write(content_a).await?;
+w.write(content_b).await?;
+w.close().await?;
+```
+
+This way, users can reuse the `Writer` in their own logic without handling 
`append` separately.
+
+#### New Lister API
+
+To improve API consistency, we've made some adjustments to our listing 
functions. We've added `list` and `list_with` methods that perform single 
operations and renamed the original `list` to `lister` and `lister_with`.
+
+```rust
+// Old API
+let lister: Lister = op.list("dir").await?;
+
+// New API
+let entries: Vec<Entry> = op.list("dir").await?;
+let lister: Vec<Entry> = op.lister("dir").await?;
+```
+
+This brings uniformity to our API offerings.
+
+#### List With Metakey
+
+To speed up list operations, OpenDAL can now fetch and store metadata during 
the listing process. This eliminates the need for separate metadata calls:
+
+```rust
+let entries: Vec<Entry> = op
+  .list_with("dir/")
+  .metakey(Metakey::ContentLength | Metakey::ContentType).await?;
+
+// Use the metadata directly!
+let meta: &Metadata = entries[0].metadata();
+```
+
+This makes metadata retrieval more intuitive.
+
+#### Buffered Writer
+
+We've added general buffer support to optimize writing operations.
+
+```rust
+let w = op.writer_with("path/to/file").buffer(8 * 1024 * 1024).await?
+```
+
+#### Others
+
+Other improvements in the core library can be found in our 
[CHANGELOG](https://github.com/apache/incubator-opendal/blob/main/CHANGELOG.md).
+
+### Bindings
+
+#### Haskell
+
+[`opendal-hs`](https://github.com/apache/incubator-opendal/tree/main/bindings/haskell)
 is ready for it's first release! Welcome to check it out and give us some 
feedback.
+
+#### Java
+
+[`opendal-java`](https://github.com/apache/incubator-opendal/tree/main/bindings/java)
 enabled more available services in this release, allowing user to visit 
services like `redis` that not enabled by default in rust core. And 
`opendal-java` enabled blocking layer to allow users visit services like `s3` 
in blocking way.
+
+Welcome to integrate `opendal-java` into your project and give us some 
feedback.
+
+#### New bindings!
+
+- 
[`opendal-cpp`](https://github.com/apache/incubator-opendal/tree/main/bindings/cpp)
+- 
[`opendal-dotnet`](https://github.com/apache/incubator-opendal/tree/main/bindings/dotnet)
+- 
[`opendal-php`](https://github.com/apache/incubator-opendal/tree/main/bindings/php)
+
+### Applications
+
+#### oay
+
+[oay](https://github.com/apache/incubator-opendal/tree/main/bin/oay) is 
OpenDAL Gateway that allows users to access OpenDAL services via existing 
protocols like `s3` and `webdav`. It works like a proxy that forwarding 
requests to OpenDAL services.
+
+In this release, we implement basic `webdav` support. Users can convert any 
storage services to a webdav server!

Review Comment:
   I think we don't need to. We can add integration tests for oay later.



-- 
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]

Reply via email to