diff --git a/bindings/c/README.md b/bindings/c/README.md
index d46f40b6e7ba..2fe1fe72fac2 100644
--- a/bindings/c/README.md
+++ b/bindings/c/README.md
@@ -1,5 +1,7 @@
# OpenDAL C Binding (WIP)
+
+
## Example
A simple read and write example
```C
@@ -81,7 +83,7 @@ sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/libgtest_main.a
make build
```
- - The header file `opendal.h` is under `./include`
+ - The header file `opendal.h` is under `./include`
- The library is under `../../target/debug` after building.
@@ -104,7 +106,7 @@ sudo ln -s /usr/lib/libgtest_main.a /usr/local/lib/libgtest_main.a
make examples
```
-
+
## Documentation
The documentation index page source is under `./docs/doxygen/html/index.html`.
diff --git a/bindings/haskell/README.md b/bindings/haskell/README.md
index 16ac3a2116f8..eff392592d25 100644
--- a/bindings/haskell/README.md
+++ b/bindings/haskell/README.md
@@ -1,5 +1,7 @@
# OpenDAL Haskell Binding (WIP)
+
+
## Example
```haskell
@@ -31,4 +33,4 @@ If you don't want to install `libopendal_hs`, you need to specify library path m
```bash
LIBRARY_PATH=... cabal build
-```
\ No newline at end of file
+```
diff --git a/bindings/java/README.md b/bindings/java/README.md
index 8d70df0aaa7c..90b5636135a5 100644
--- a/bindings/java/README.md
+++ b/bindings/java/README.md
@@ -3,6 +3,7 @@
[](https://central.sonatype.com/search?q=opendal-java&smo=true)
[](https://opendal.apache.org/docs/java/)
+
## Getting Started
diff --git a/bindings/lua/README.md b/bindings/lua/README.md
index 22e89332fa8d..b666a415dcba 100644
--- a/bindings/lua/README.md
+++ b/bindings/lua/README.md
@@ -1,4 +1,6 @@
-# OpenDAL LUA Binding (WIP)
+# OpenDAL Lua Binding (WIP)
+
+
## Example
@@ -54,4 +56,4 @@ $ busted -o gtest test/opendal_test.lua
[----------] Global test environment teardown.
[==========] 2 tests from 1 test file ran. (3.54 ms total)
[ PASSED ] 2 tests.
-```
\ No newline at end of file
+```
diff --git a/bindings/nodejs/README.md b/bindings/nodejs/README.md
index 07accaafd1a8..60409cf761d4 100644
--- a/bindings/nodejs/README.md
+++ b/bindings/nodejs/README.md
@@ -1,5 +1,7 @@
# OpenDAL Node.js Binding
+
+
## Installation
```shell
diff --git a/bindings/python/README.md b/bindings/python/README.md
index 1d8ec8196b88..0baf1ae0114e 100644
--- a/bindings/python/README.md
+++ b/bindings/python/README.md
@@ -4,6 +4,8 @@ Documentation: [main](https://opendal.apache.org/docs/python/)
This crate intends to build a native python binding.
+
+
## Installation
```bash
diff --git a/bindings/ruby/README.md b/bindings/ruby/README.md
index 50561bfa3ce5..074808f40edd 100644
--- a/bindings/ruby/README.md
+++ b/bindings/ruby/README.md
@@ -2,6 +2,8 @@
This crate intends to build a native ruby binding.
+
+
## Development
Install gems:
diff --git a/bindings/swift/README.md b/bindings/swift/README.md
index 64be7d6e3d8f..2f68d108eae7 100644
--- a/bindings/swift/README.md
+++ b/bindings/swift/README.md
@@ -1,5 +1,7 @@
# OpenDAL Swift Binding
+
+
## Using the Package
### Build C Dependencies
@@ -9,7 +11,7 @@ The Swift binding depends on the C binding to OpenDAL. Before using this package
```
cd bindings/swift
make build-c
-```
+```
To check whether the package is ready to use, simply run the test:
diff --git a/bindings/zig/README.md b/bindings/zig/README.md
index 294b103fb68c..7f25eb470fe0 100644
--- a/bindings/zig/README.md
+++ b/bindings/zig/README.md
@@ -1,6 +1,8 @@
# OpenDAL Zig Binding (WIP)
-# Build
+
+
+## Build
To compile OpenDAL from source code, you need:
diff --git a/core/README.md b/core/README.md
index 1ab16163f601..6d133385e453 100644
--- a/core/README.md
+++ b/core/README.md
@@ -8,40 +8,84 @@
[chat]: https://img.shields.io/discord/1081052318650339399
[discord]: https://discord.gg/XQy8yGR2dg
-**Open** **D**ata **A**ccess **L**ayer: access data freely.
+**OpenDAL** is a data access layer that allows users to easily and efficiently retrieve data from various storage services in a unified way.
- Documentation: [stable](https://docs.rs/opendal/) | [main](https://opendal.apache.org/docs/rust/opendal/)
- [Release notes](https://docs.rs/opendal/latest/opendal/docs/changelog/index.html)
-
+
## Services
-- [azblob](https://docs.rs/opendal/latest/opendal/services/struct.Azblob.html): [Azure Storage Blob](https://azure.microsoft.com/en-us/services/storage/blobs/) services.
-- [azdfs](https://docs.rs/opendal/latest/opendal/services/struct.Azdfs.html): [Azure Data Lake Storage Gen2](https://azure.microsoft.com/en-us/products/storage/data-lake-storage/) services. (As known as [abfs](https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-abfs-driver))
-- [cacache](https://docs.rs/opendal/latest/opendal/services/struct.Cacache.html): [cacache](https://crates.io/crates/cacache) backend support.
-- [dashmap](https://docs.rs/opendal/latest/opendal/services/struct.Dashmap.html): [dashmap](https://github.com/xacrimon/dashmap) backend support.
-- [fs](https://docs.rs/opendal/latest/opendal/services/struct.Fs.html): POSIX alike file system.
-- [ftp](https://docs.rs/opendal/latest/opendal/services/struct.Ftp.html): FTP and FTPS support.
-- [gcs](https://docs.rs/opendal/latest/opendal/services/struct.Gcs.html): [Google Cloud Storage](https://cloud.google.com/storage) Service.
-- [ghac](https://docs.rs/opendal/latest/opendal/services/struct.Ghac.html): [Github Action Cache](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows) Service.
-- [hdfs](https://docs.rs/opendal/latest/opendal/services/struct.Hdfs.html): [Hadoop Distributed File System](https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html)(HDFS).
-- [http](https://docs.rs/opendal/latest/opendal/services/struct.Http.html): HTTP read-only services.
-- [ipfs](https://docs.rs/opendal/latest/opendal/services/struct.Ipfs.html): [InterPlanetary File System](https://ipfs.tech/) HTTP Gateway support.
-- [ipmfs](https://docs.rs/opendal/latest/opendal/services/struct.Ipmfs.html): [InterPlanetary File System](https://ipfs.tech/) MFS API support.
-- [memcached](https://docs.rs/opendal/latest/opendal/services/struct.Memcached.html): [Memcached](https://memcached.org/) service support.
-- [memory](https://docs.rs/opendal/latest/opendal/services/struct.Memory.html): In memory backend.
-- [mini_moka](https://docs.rs/opendal/latest/opendal/services/struct.MiniMoka.html): [mini-moka](https://github.com/moka-rs/mini-moka) backend support.
-- [moka](https://docs.rs/opendal/latest/opendal/services/struct.Moka.html): [moka](https://github.com/moka-rs/moka) backend support.
-- [obs](https://docs.rs/opendal/latest/opendal/services/struct.Obs.html): [Huawei Cloud Object Storage](https://www.huaweicloud.com/intl/en-us/product/obs.html) Service (OBS).
-- [oss](https://docs.rs/opendal/latest/opendal/services/struct.Oss.html): [Aliyun Object Storage Service](https://www.aliyun.com/product/oss) (OSS).
-- [redis](https://docs.rs/opendal/latest/opendal/services/struct.Redis.html): [Redis](https://redis.io/) services support.
-- [rocksdb](https://docs.rs/opendal/latest/opendal/services/struct.Rocksdb.html): [RocksDB](http://rocksdb.org/) services support.
-- [s3](https://docs.rs/opendal/latest/opendal/services/struct.S3.html): [AWS S3](https://aws.amazon.com/s3/) alike services.
-- [sftp](https://docs.rs/opendal/latest/opendal/services/struct.Sftp.html): [SFTP](https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-02) services support.
-- [sled](https://docs.rs/opendal/latest/opendal/services/sled/struct.Sled.html): [sled](https://crates.io/crates/sled) services support.
-- [webdav](https://docs.rs/opendal/latest/opendal/services/struct.Webdav.html): [WebDAV](https://datatracker.ietf.org/doc/html/rfc4918) Service Support.
-- [webhdfs](https://docs.rs/opendal/latest/opendal/services/struct.Webhdfs.html): [WebHDFS](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/WebHDFS.html) Service Support.
+
+Standard Storage Protocols (like ftp, webdav)
+
+- ftp: FTP and FTPS
+- http: HTTP read-only services
+- sftp: [SFTP](https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-02) services *being worked on*
+- webdav: [WebDAV](https://datatracker.ietf.org/doc/html/rfc4918) Service
+
+
+
+
+Object Storage Services (like s3, gcs, azblob)
+
+- azblob: [Azure Storage Blob](https://azure.microsoft.com/en-us/services/storage/blobs/) services
+- cos: [Tencent Cloud Object Storage](https://www.tencentcloud.com/products/cos) services
+- gcs: [Google Cloud Storage](https://cloud.google.com/storage) Service
+- obs: [Huawei Cloud Object Storage](https://www.huaweicloud.com/intl/en-us/product/obs.html) Service (OBS)
+- oss: [Aliyun Object Storage Service](https://www.aliyun.com/product/oss) (OSS)
+- s3: [AWS S3](https://aws.amazon.com/s3/) alike services
+- supabase: [Supabase Storage](https://supabase.com/docs/guides/storage) Service *being worked on*
+- wasabi: [Wasabi](https://wasabi.com/) Cloud Storage
+
+
+
+
+File Storage Services (like fs, azdfs, hdfs)
+
+- fs: POSIX alike file system
+- azdfs: [Azure Data Lake Storage Gen2](https://azure.microsoft.com/en-us/products/storage/data-lake-storage/) services (As known as [abfs](https://learn.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-abfs-driver))
+- hdfs: [Hadoop Distributed File System](https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html)(HDFS)
+- ipfs: [InterPlanetary File System](https://ipfs.tech/) HTTP Gateway
+- ipmfs: [InterPlanetary File System](https://ipfs.tech/) MFS API *being worked on*
+- webhdfs: [WebHDFS](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/WebHDFS.html) Service
+
+
+
+
+Consumer Cloud Storage Service (like gdrive, onedrive)
+
+- gdrive: [Google Drive](https://www.google.com/drive/) *being worked on*
+- onedrive: [OneDrive](https://www.microsoft.com/en-us/microsoft-365/onedrive/online-cloud-storage) *being worked on*
+
+
+
+
+Key-Value Storage Service (like rocksdb, sled)
+
+- cacache: [cacache](https://crates.io/crates/cacache) backend
+- dashmap: [dashmap](https://github.com/xacrimon/dashmap) backend
+- memory: In memory backend
+- redis: [Redis](https://redis.io/) services
+- rocksdb: [RocksDB](http://rocksdb.org/) services
+- sled: [sled](https://crates.io/crates/sled) backend
+- redb: [redb](https://crates.io/crates/redb) backend
+
+
+
+
+Cache Storage Service (like memcached, moka)
+
+- ghac: [Github Action Cache](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows) Service
+- memcached: [Memcached](https://memcached.org/) service
+- mini_moka: [Mini Moka](https://github.com/moka-rs/mini-moka) backend
+- moka: [Moka](https://github.com/moka-rs/moka) backend
+- vercel_artifacts: [Vercel Remote Caching](https://vercel.com/docs/concepts/monorepos/remote-caching) Service *being worked on*
+
+
+
+> Welcome to add any services that are not currently supported [here](https://github.com/apache/incubator-opendal/issues/5).
## Features
@@ -49,10 +93,6 @@ Access data **freely**
- Access different storage services in the same way
- Behavior tests for all services
-- Cross language/project bindings
- - [Python](../bindings/python/)
- - [Node.js](../bindings/nodejs/)
- - [object_store](../bindings/object_store/)
Access data **painlessly**
@@ -104,18 +144,15 @@ async fn main() -> Result<()> {
Ok(())
}
-
```
-## Contributing
-
-Check out the [CONTRIBUTING](CONTRIBUTING.md) guide for more details on getting started with contributing to this project.
+## Examples
-## Getting help
+The examples are available at [here](./examples/rust).
-Submit [issues](https://github.com/apache/incubator-opendal/issues/new) for bug report or asking questions in the [Discussions forum](https://github.com/apache/incubator-opendal/discussions/new?category=q-a).
+## Contributing
-Talk to develops at [discord].
+Check out the [CONTRIBUTING](CONTRIBUTING.md) guide for more details on getting started with contributing to this project.
## License