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) +![](https://github.com/apache/incubator-opendal/assets/5351546/87bbf6e5-f19e-449a-b368-3e283016c887) + ## 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) +![](https://github.com/apache/incubator-opendal/assets/5351546/87bbf6e5-f19e-449a-b368-3e283016c887) + ## 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 @@ [![Maven Central](https://img.shields.io/maven-central/v/org.apache.opendal/opendal-java.svg?logo=Apache+Maven&logoColor=blue)](https://central.sonatype.com/search?q=opendal-java&smo=true) [![Website](https://img.shields.io/badge/opendal-OpenDAL_Website-red?logo=Apache&logoColor=red)](https://opendal.apache.org/docs/java/) +![](https://github.com/apache/incubator-opendal/assets/5351546/87bbf6e5-f19e-449a-b368-3e283016c887) ## 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) + +![](https://github.com/apache/incubator-opendal/assets/5351546/87bbf6e5-f19e-449a-b368-3e283016c887) ## 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 +![](https://github.com/apache/incubator-opendal/assets/5351546/87bbf6e5-f19e-449a-b368-3e283016c887) + ## 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. +![](https://github.com/apache/incubator-opendal/assets/5351546/87bbf6e5-f19e-449a-b368-3e283016c887) + ## 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. +![](https://github.com/apache/incubator-opendal/assets/5351546/87bbf6e5-f19e-449a-b368-3e283016c887) + ## 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 +![](https://github.com/apache/incubator-opendal/assets/5351546/87bbf6e5-f19e-449a-b368-3e283016c887) + ## 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 +![](https://github.com/apache/incubator-opendal/assets/5351546/87bbf6e5-f19e-449a-b368-3e283016c887) + +## 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) -![](https://user-images.githubusercontent.com/5351546/222356748-14276998-501b-4d2a-9b09-b8cff3018204.png) +![](https://github.com/apache/incubator-opendal/assets/5351546/87bbf6e5-f19e-449a-b368-3e283016c887) ## 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