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


##########
website/blog/2023-09-14-owo-1/index.md:
##########
@@ -0,0 +1,155 @@
+---
+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: Lister = 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
+
+#### Cpp
+
+[`opendal-cpp`](https://github.com/apache/incubator-opendal/tree/main/bindings/cpp)
 is ready for it's first release! Welcome to check it out and give us some 
feedback.

Review Comment:
   ```suggestion
   
[`opendal-cpp`](https://github.com/apache/incubator-opendal/tree/main/bindings/cpp)
 is ready for its first release! Welcome to check it out and give us some 
feedback.
   ```



##########
website/blog/2023-09-14-owo-1/index.md:
##########
@@ -0,0 +1,155 @@
+---
+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: Lister = 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
+
+#### Cpp
+
+[`opendal-cpp`](https://github.com/apache/incubator-opendal/tree/main/bindings/cpp)
 is ready for it's first release! Welcome to check it out and give us some 
feedback.
+
+#### 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.

Review Comment:
   ```suggestion
   
[`opendal-hs`](https://github.com/apache/incubator-opendal/tree/main/bindings/haskell)
 is ready for its first release! Welcome to check it out and give us some 
feedback.
   ```



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