This is an automated email from the ASF dual-hosted git repository.

xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git


The following commit(s) were added to refs/heads/main by this push:
     new e7a8990a0 docs: Add OwO 1st (#3086)
e7a8990a0 is described below

commit e7a8990a0c399846a6e5c147b30105a8bc232f6c
Author: Xuanwo <[email protected]>
AuthorDate: Fri Sep 15 17:45:07 2023 +0800

    docs: Add OwO 1st (#3086)
    
    * docs: Add OwO #1
    
    Signed-off-by: Xuanwo <[email protected]>
    
    * Update website/blog/2023-09-14-owo-1/index.md
    
    Co-authored-by: Mingzhuo Yin <[email protected]>
    
    * Update cpp
    
    Signed-off-by: Xuanwo <[email protected]>
    
    * Apply suggestions from code review
    
    Co-authored-by: tison <[email protected]>
    
    * Update website/blog/2023-09-14-owo-1/index.md
    
    Co-authored-by: tison <[email protected]>
    
    ---------
    
    Signed-off-by: Xuanwo <[email protected]>
    Co-authored-by: Mingzhuo Yin <[email protected]>
    Co-authored-by: tison <[email protected]>
---
 website/blog/2023-09-14-owo-1/index.md | 155 +++++++++++++++++++++++++++++++++
 1 file changed, 155 insertions(+)

diff --git a/website/blog/2023-09-14-owo-1/index.md 
b/website/blog/2023-09-14-owo-1/index.md
new file mode 100644
index 000000000..5a6b2617a
--- /dev/null
+++ b/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 its 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 its 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-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!
+
+#### oli
+
+[oli](https://github.com/apache/incubator-opendal/tree/main/bin/oay) is 
OpenDAL CLI that allows users to access storage services via CLI like `s3cmd` 
and `gcloud` does.
+
+We fixed some experience issues in this release and improved some docs. 
Welcome to try it out and give us some feedback.
+
+### Integrations
+
+#### object_store
+
+[object_store](https://github.com/apache/incubator-opendal/tree/main/integrations/object_store)
 instead to implement 
[`object_store`](https://github.com/apache/arrow-rs/tree/master/object_store)'s 
trait over OpenDAL Operator so that users can use OpenDAL as a backend for 
`object_store`.
+
+`object_store` is mostly functional, but there are some edge use cases that 
OpenDAL has yet to support.
+
+So far, this release hasn't seen progress in this area; we are awaiting the 
resolution of the issue [Allow list paths that do not end with 
`/`](https://github.com/apache/incubator-opendal/issues/2762).
+
+## Working
+
+We are working on the following things:
+
+- `object_store` support: Make `object_store` integration works and find a 
user for it.
+- Remove the `/` limitation for path, so we can list a path without ending 
with `/`.
+- Expand the `start-after` support to more services (Address 
[#2786](https://github.com/apache/incubator-opendal/issues/2786)).
+
+## Outlook
+
+We are exploring some innovative ideas:
+
+- [OpenDAL REST/gRPC 
API](https://github.com/apache/incubator-opendal/discussions/2951): A REST/gRPC 
Server for OpenDAL.
+- [OpenDAL 
Cache](https://github.com/apache/incubator-opendal/discussions/2953): OpenDAL 
native cache libs that allowing users to access data more efficiently.
+- [OpenDAL File 
System](https://github.com/apache/incubator-opendal/discussions/2952): A 
read-only file system that built upon OpenDAL in rust!
+- [kio-opendal](https://github.com/apache/incubator-opendal/discussions/3042): 
A kio plugin powered by OpenDAL that allows users to visit different storage 
services in [KDE Dolphin](https://apps.kde.org/dolphin/).
+- gvfs-opendal: A gvfs plugin powered by OpenDAL that allows users to visit 
different storage services in [GNOME Files](https://wiki.gnome.org/Apps/Files)
+
+Feel free to join in the discussion!
+
+## Summary
+
+This marks our first OpenDAL `OwO` post. We welcome your feedback.

Reply via email to