apache / apache/opendal

Service capability tracking issue

Open
#7,826 1 comment 3 reactions 0 assignees View on GitHub
documentation releases-note/docs research
Dominant language
Rust
Stars
5.4k
Forks
825
Avg merge
1d 14m
Merged PRs (30d)
127

Description

# OpenDAL service capability overview

There is already a very limited list of supported capabilities on each service's docs.rs documentation page, however it would be very useful to have an overview of each service's specific capabilities and how widely supported each specific capability is.

Below is a extensive but very unfished overview of the capabilities of each service. My idea is to fill in the unknowns, and add whether things are currently not yet implemented or just not supported by the service itself. Later this could perhaps be added to a page on https://opendal.apache.org/docs.

The initial overview is based on whether the property of the Capability object in the code of the service is set to `true` (√) or `false` (×).

**Legend**
|Cell|Meaning|
|-|-|
|√|Supported and implemented|
|UNSUP|Not supported by underlying service|
|WIP|Possible, and in progress|
|TODO|Possible, but not yet implemented|
|×|Not supported (any reason)|
|?|Unknown|

## Read

| service | read | with_suffix | with_if_match | with_if_none_match | with_override_content_disposition | with_if_modified_since | with_if_unmodified_since | with_version | with_override_cache_control | with_override_content_type |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| memory | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| aliyun-drive | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| alluxio | × | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| azblob | √ | ? | √ | √ | √ | √ | √ | ? | ? | ? |
| azdls | √ | ? | √ | √ | ? | √ | √ | ? | ? | ? |
| azfile | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| b2 | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| cacache | √ | UNSUP | UNSUP | UNSUP | UNSUP | UNSUP | UNSUP | UNSUP | UNSUP | UNSUP |
| cloudflare-kv | √ | ? | √ | √ | ? | √ | √ | ? | ? | ? |
| compfs | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| cos | √ | √ | √ | √ | ? | √ | √ | √ | ? | ? |
| d1 | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| dashmap | √ | UNSUP | ? | ? | UNSUP | ? | ? | UNSUP | UNSUP | UNSUP |
| dbfs | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| dropbox | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| etcd | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| foundationdb | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| foyer | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| fs | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| ftp | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| gcs | √ | √ | √ | √ | ? | ? | ? | ? | ? | ? |
| gdrive | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| ghac | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| github | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| goosefs | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| gridfs | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| hdfs | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| hdfs-native | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| hf | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| http | √ | √ | √ | √ | ? | ? | ? | ? | ? | ? |
| ipfs | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| ipmfs | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| koofr | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| lakefs | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| memcached | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| mini_moka | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| moka | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| mongodb | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| monoiofs | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| mysql | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| obs | √ | √ | √ | √ | ? | ? | ? | ? | ? | ? |
| onedrive | √ | √ | ? | √ | ? | ? | ? | ? | ? | ? |
| opfs | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| oss | √ | √ | √ | √ | ? | √ | √ | √ | ? | ? |
| pcloud | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| persy | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| postgresql | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| redb | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| redis | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| rocksdb | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| s3 | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
| seafile | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| sftp | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| sled | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| sqlite | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| surrealdb | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| swift | √ | √ | √ | √ | ? | √ | √ | ? | ? | ? |
| tikv | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| tos | √ | √ | √ | √ | ? | √ | √ | √ | ? | ? |
| upyun | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| vercel-artifacts | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| vercel-blob | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| webdav | √ | √ | WIP https://github.com/apache/opendal/pull/7637 | WIP https://github.com/apache/opendal/pull/7637 | ? | WIP https://github.com/apache/opendal/pull/7637 | WIP https://github.com/apache/opendal/pull/7637 | ? | ? | ? |
| webhdfs | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| yandex-disk | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? |

## Write

| service | write | can_multi | can_append | can_empty | with_cache_control | with_content_type | with_if_not_exists | with_if_none_match | with_user_metadata | with_content_disposition | with_content_encoding | with_if_match |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| memory | √ | ? | × | √ | √ | √ | √ | ? | ? | √ | ? | ? |
| aliyun-drive | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| alluxio | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| azblob | √ | √ | √ | √ | √ | √ | √ | √ | √ | ? | ? | ? |
| azdls | √ | √ | √ | ? | ? | ? | √ | √ | √ | ? | ? | ? |
| azfile | √ | ? | ? | ? | ? | ? | ? | ? | √ | ? | ? | ? |
| b2 | √ | √ | [UNSUP](https://www.backblaze.com/apidocs/b2-upload-file)| √ | ? | √ | ? | ? | √ | [TODO](https://www.backblaze.com/apidocs/b2-upload-file?X-Bz-Info-b2-content-disposition) | ? | ? |
| cacache | √ | ? | UNSUP | ? | ? | UNSUP | ? | UNSUP | UNSUP | UNSUP | UNSUP | UNSUP |
| cloudflare-kv | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| compfs | √ | √ | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| cos | √ | √ | √ | √ | √ | √ | √ | ? | √ | √ | ? | ? |
| d1 | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| dashmap | √ | ? | ? | √ | √ | √ | ? | ? | ? | √ | √ | ? |
| dbfs | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| dropbox | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| etcd | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| foundationdb | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| foyer | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| fs | √ | √ | √ | √ | ? | ? | √ | ? | √ | ? | ? | ? |
| ftp | √ | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| gcs | √ | √ | ? | √ | √ | √ | √ | ? | √ | ? | √ | ? |
| gdrive | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| ghac | √ | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| github | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| goosefs | √ | √ | ? | ? | ? | ? | √ | ? | ? | ? | ? | ? |
| gridfs | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| hdfs | √ | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| hdfs-native | √ | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| hf | token.is_some(), | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| http | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| ipfs | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| ipmfs | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| koofr | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| lakefs | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| memcached | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| mini_moka | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| moka | √ | ? | ? | √ | √ | √ | ? | ? | ? | √ | √ | ? |
| mongodb | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| monoiofs | √ | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| mysql | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| obs | √ | √ | √ | √ | √ | √ | ? | ? | √ | ? | ? | ? |
| onedrive | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | √ |
| opfs | √ | √ | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| oss | √ | √ | √ | √ | √ | √ | √ | ? | √ | √ | √ | ? |
| pcloud | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| persy | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| postgresql | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| redb | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| redis | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| rocksdb | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| s3 | √ | √ | √ | √ | √ | √ | √ | ? | √ | √ | √ | √ |
| seafile | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| sftp | √ | √ | ? | ? | ? | ? | √ | ? | ? | ? | ? | ? |
| sled | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| sqlite | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| surrealdb | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| swift | √ | √ | ? | √ | √ | √ | ? | ? | √ | √ | √ | ? |
| tikv | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| tos | √ | √ | ? | √ | √ | √ | √ | ? | √ | ? | √ | √ |
| upyun | √ | √ | ? | √ | √ | √ | ? | ? | ? | ? | ? | ? |
| vercel-artifacts | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| vercel-blob | √ | √ | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| webdav | √ | ? | UNSUP | √ | ? | ? | ? | ? | √ | ? | ? | ? |
| webhdfs | √ | atomic_dir.is_some(), | √ | ? | ? | ? | ? | ? | ? | ? | ? | ? |
| yandex-disk | √ | ? | ? | √ | ? | ? | ? | ? | ? | ? | ? | ? |

## Copy

| service | copy | with_if_not_exists | can_multi | with_if_match | with_source_version |
| --- | --- | --- | --- | --- | --- |
| memory | TODO | ? | ? | ? | ? |
| aliyun-drive | √ | ? | ? | ? | ? |
| alluxio | ? | ? | ? | ? | ? |
| azblob | √ | √ | √ | ? | ? |
| azdls | ? | ? | ? | ? | ? |
| azfile | ? | ? | ? | ? | ? |
| b2 | √ | ? | ? | ? | ? |
| cacache | [TODO](https://docs.rs/cacache/latest/cacache/fn.copy.html) | ? | ? | ? | ? |
| cloudflare-kv | ? | ? | ? | ? | ? |
| compfs | √ | ? | ? | ? | ? |
| cos | √ | √ | ? | ? | ? |
| d1 | ? | ? | ? | ? | ? |
| dashmap | × | × | UNSUP | UNSUP | UNSUP |
| dbfs | ? | ? | ? | ? | ? |
| dropbox | √ | ? | ? | ? | ? |
| etcd | ? | ? | ? | ? | ? |
| foundationdb | ? | ? | ? | ? | ? |
| foyer | ? | ? | ? | ? | ? |
| fs | √ | ? | ? | ? | ? |
| ftp | ? | ? | ? | ? | ? |
| gcs | √ | ? | √ | ? | ? |
| gdrive | √ | ? | ? | ? | ? |
| ghac | ? | ? | ? | ? | ? |
| github | ? | ? | ? | ? | ? |
| goosefs | ? | ? | ? | ? | ? |
| gridfs | ? | ? | ? | ? | ? |
| hdfs | ? | ? | ? | ? | ? |
| hdfs-native | ? | ? | ? | ? | ? |
| hf | ? | ? | ? | ? | ? |
| http | ? | ? | ? | ? | ? |
| ipfs | ? | ? | ? | ? | ? |
| ipmfs | ? | ? | ? | ? | ? |
| koofr | √ | ? | ? | ? | ? |
| lakefs | √ | ? | ? | ? | ? |
| memcached | ? | ? | ? | ? | ? |
| mini_moka | ? | ? | ? | ? | ? |
| moka | ? | ? | ? | ? | ? |
| mongodb | ? | ? | ? | ? | ? |
| monoiofs | √ | ? | ? | ? | ? |
| mysql | ? | ? | ? | ? | ? |
| obs | √ | ? | ? | ? | ? |
| onedrive | √ | ? | ? | ? | ? |
| opfs | ? | ? | ? | ? | ? |
| oss | √ | ? | ? | ? | ? |
| pcloud | √ | ? | ? | ? | ? |
| persy | ? | ? | ? | ? | ? |
| postgresql | ? | ? | ? | ? | ? |
| redb | ? | ? | ? | ? | ? |
| redis | ? | ? | ? | ? | ? |
| rocksdb | ? | ? | ? | ? | ? |
| s3 | √ | √ | √ | √ | √ |
| seafile | ? | ? | ? | ? | ? |
| sftp | √ | ? | ? | ? | ? |
| sled | ? | ? | ? | ? | ? |
| sqlite | ? | ? | ? | ? | ? |
| surrealdb | ? | ? | ? | ? | ? |
| swift | √ | ? | ? | ? | ? |
| tikv | ? | ? | ? | ? | ? |
| tos | √ | ? | √ | ? | ? |
| upyun | √ | ? | ? | ? | ? |
| vercel-artifacts | ? | ? | ? | ? | ? |
| vercel-blob | √ | ? | ? | ? | ? |
| webdav | √ | ? | ? | ? | ? |
| webhdfs | ? | ? | ? | ? | ? |
| yandex-disk | √ | ? | ? | ? | ? |

## List

| service | list | with_limit | with_recursive | with_start_after | with_versions | with_deleted |
| --- | --- | --- | --- | --- | --- | --- |
| memory | √ | ? | √ | ? | ? | ? |
| aliyun-drive | √ | √ | ? | ? | ? | ? |
| alluxio | √ | ? | ? | ? | ? | ? |
| azblob | √ | ? | √ | ? | ? | ? |
| azdls | √ | ? | ? | ? | ? | ? |
| azfile | √ | ? | ? | ? | ? | ? |
| b2 | √ | √ | √ | √ | ? | ? |
| cacache | [TODO](https://docs.rs/cacache/latest/cacache/fn.list_sync.html) | ? | ? | ? | ? | ? |
| cloudflare-kv | √ | √ | √ | ? | ? | ? |
| compfs | √ | ? | ? | ? | ? | ? |
| cos | √ | ? | √ | ? | √ | √ |
| d1 | ? | ? | ? | ? | ? | ? |
| dashmap | √ | ? | ? | ? | ? | ? |
| dbfs | √ | ? | ? | ? | ? | ? |
| dropbox | √ | ? | √ | ? | ? | ? |
| etcd | √ | ? | ? | ? | ? | ? |
| foundationdb | ? | ? | ? | ? | ? | ? |
| foyer | ? | ? | ? | ? | ? | ? |
| fs | √ | ? | ? | ? | ? | ? |
| ftp | √ | ? | ? | ? | ? | ? |
| gcs | √ | √ | √ | √ | ? | ? |
| gdrive | √ | ? | √ | ? | ? | ? |
| ghac | ? | ? | ? | ? | ? | ? |
| github | √ | ? | √ | ? | ? | ? |
| goosefs | √ | ? | ? | ? | ? | ? |
| gridfs | ? | ? | ? | ? | ? | ? |
| hdfs | √ | ? | ? | ? | ? | ? |
| hdfs-native | √ | ? | ? | ? | ? | ? |
| hf | √ | ? | √ | ? | ? | ? |
| http | ? | ? | ? | ? | ? | ? |
| ipfs | √ | ? | ? | ? | ? | ? |
| ipmfs | √ | ? | ? | ? | ? | ? |
| koofr | √ | ? | ? | ? | ? | ? |
| lakefs | √ | ? | ? | ? | ? | ? |
| memcached | ? | ? | ? | ? | ? | ? |
| mini_moka | √ | ? | ? | ? | ? | ? |
| moka | √ | ? | ? | ? | ? | ? |
| mongodb | ? | ? | ? | ? | ? | ? |
| monoiofs | ? | ? | ? | ? | ? | ? |
| mysql | √ | ? | √ | ? | ? | ? |
| obs | √ | ? | √ | ? | ? | ? |
| onedrive | √ | √ | ? | ? | √ | ? |
| opfs | √ | ? | ? | ? | ? | ? |
| oss | √ | √ | √ | √ | √ | √ |
| pcloud | √ | ? | ? | ? | ? | ? |
| persy | ? | ? | ? | ? | ? | ? |
| postgresql | ? | ? | ? | ? | ? | ? |
| redb | [WIP](https://github.com/apache/opendal/pull/6165) | ? | ? | ? | ? | ? |
| redis | ? | ? | ? | ? | ? | ? |
| rocksdb | √ | ? | √ | ? | ? | ? |
| s3 | √ | √ | √ | √ | √ | √ |
| seafile | √ | ? | ? | ? | ? | ? |
| sftp | √ | √ | ? | ? | ? | ? |
| sled | √ | ? | √ | ? | ? | ? |
| sqlite | × | ? | ? | ? | ? | ? |
| surrealdb | ? | ? | ? | ? | ? | ? |
| swift | √ | ? | √ | √ | ? | ? |
| tikv | ? | ? | ? | ? | ? | ? |
| tos | √ | √ | √ | √ | √ | √ |
| upyun | √ | √ | ? | ? | ? | ? |
| vercel-artifacts | ? | ? | ? | ? | ? | ? |
| vercel-blob | √ | √ | ? | ? | ? | ? |
| webdav | √ | ? | √ | ? | ? | ? |
| webhdfs | √ | ? | ? | ? | ? | ? |
| yandex-disk | √ | √ | ? | ? | ? | ? |

## Stat

| service | stat | with_if_match | with_if_none_match | with_if_modified_since | with_if_unmodified_since | with_version | with_override_cache_control | with_override_content_disposition | with_override_content_type |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| memory | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| aliyun-drive | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| alluxio | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| azblob | √ | √ | √ | ? | ? | ? | ? | ? | ? |
| azdls | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| azfile | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| b2 | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| cacache | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| cloudflare-kv | √ | √ | √ | √ | √ | ? | ? | ? | ? |
| compfs | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| cos | √ | √ | √ | ? | ? | √ | ? | ? | ? |
| d1 | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| dashmap | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| dbfs | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| dropbox | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| etcd | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| foundationdb | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| foyer | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| fs | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| ftp | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| gcs | √ | √ | √ | ? | ? | ? | ? | ? | ? |
| gdrive | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| ghac | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| github | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| goosefs | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| gridfs | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| hdfs | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| hdfs-native | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| hf | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| http | √ | √ | √ | ? | ? | ? | ? | ? | ? |
| ipfs | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| ipmfs | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| koofr | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| lakefs | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| memcached | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| mini_moka | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| moka | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| mongodb | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| monoiofs | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| mysql | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| obs | √ | √ | √ | ? | ? | ? | ? | ? | ? |
| onedrive | √ | ? | √ | ? | ? | √ | ? | ? | ? |
| opfs | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| oss | √ | √ | √ | ? | ? | √ | ? | ? | ? |
| pcloud | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| persy | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| postgresql | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| redb | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| redis | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| rocksdb | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| s3 | √ | √ | √ | √ | √ | √ | √ | √ | √ |
| seafile | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| sftp | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| sled | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| sqlite | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| surrealdb | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| swift | √ | √ | √ | √ | √ | ? | ? | ? | ? |
| tikv | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| tos | √ | √ | √ | √ | √ | √ | ? | ? | ? |
| upyun | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| vercel-artifacts | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| vercel-blob | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| webdav | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| webhdfs | √ | ? | ? | ? | ? | ? | ? | ? | ? |
| yandex-disk | √ | ? | ? | ? | ? | ? | ? | ? | ? |

## Delete

| service | delete | with_recursive | with_version |
| --- | --- | --- | --- |
| memory | √ | ? | ? |
| aliyun-drive | √ | ? | ? |
| alluxio | √ | ? | ? |
| azblob | √ | ? | ? |
| azdls | √ | √ | ? |
| azfile | √ | ? | ? |
| b2 | √ | ? | ? |
| cacache | √ | ? | ? |
| cloudflare-kv | √ | ? | ? |
| compfs | √ | ? | ? |
| cos | √ | ? | √ |
| d1 | √ | ? | ? |
| dashmap | √ | ? | ? |
| dbfs | √ | ? | ? |
| dropbox | √ | ? | ? |
| etcd | √ | ? | ? |
| foundationdb | √ | ? | ? |
| foyer | √ | ? | ? |
| fs | √ | √ | ? |
| ftp | √ | ? | ? |
| gcs | √ | ? | ? |
| gdrive | √ | √ | ? |
| ghac | ? | ? | ? |
| github | √ | ? | ? |
| goosefs | √ | ? | ? |
| gridfs | √ | ? | ? |
| hdfs | √ | √ | ? |
| hdfs-native | √ | ? | ? |
| hf | token.is_some(), | ? | ? |
| http | ? | ? | ? |
| ipfs | ? | ? | ? |
| ipmfs | √ | ? | ? |
| koofr | √ | ? | ? |
| lakefs | √ | ? | ? |
| memcached | √ | ? | ? |
| mini_moka | √ | ? | ? |
| moka | √ | ? | ? |
| mongodb | √ | ? | ? |
| monoiofs | √ | ? | ? |
| mysql | √ | ? | ? |
| obs | √ | ? | ? |
| onedrive | √ | ? | ? |
| opfs | √ | ? | ? |
| oss | √ | ? | √ |
| pcloud | √ | ? | ? |
| persy | √ | ? | ? |
| postgresql | √ | ? | ? |
| redb | √ | ? | ? |
| redis | √ | ? | ? |
| rocksdb | √ | ? | ? |
| s3 | √ | ? | √ |
| seafile | √ | ? | ? |
| sftp | √ | ? | ? |
| sled | √ | ? | ? |
| sqlite | √ | ? | ? |
| surrealdb | √ | ? | ? |
| swift | √ | ? | ? |
| tikv | √ | ? | ? |
| tos | √ | ? | √ |
| upyun | √ | ? | ? |
| vercel-artifacts | ? | ? | ? |
| vercel-blob | √ | ? | ? |
| webdav | √ | ? | ? |
| webhdfs | √ | ? | ? |
| yandex-disk | √ | ? | ? |

## Presign

| service | presign | stat | read | write |
| --- | --- | --- | --- | --- |
| memory | UNSUP | UNSUP | UNSUP | UNSUP |
| aliyun-drive | ? | ? | ? | ? |
| alluxio | ? | ? | ? | ? |
| azblob | √ | √ | √ | √ |
| azdls | ? | ? | ? | ? |
| azfile | ? | ? | ? | ? |
| b2 | √ | √ | √ | √ |
| cacache | UNSUP | UNSUP | UNSUP | UNSUP |
| cloudflare-kv | ? | ? | ? | ? |
| compfs | UNSUP | UNSUP | UNSUP | UNSUP |
| cos | √ | √ | √ | √ |
| d1 | ? | ? | ? | ? |
| dashmap | UNSUP | UNSUP | UNSUP | UNSUP |
| dbfs | ? | ? | ? | ? |
| dropbox | ? | ? | ? | ? |
| etcd | ? | ? | ? | ? |
| foundationdb | ? | ? | ? | ? |
| foyer | ? | ? | ? | ? |
| fs | UNSUP | UNSUP | UNSUP | UNSUP |
| ftp | UNSUP | UNSUP | UNSUP | UNSUP |
| gcs | √ | √ | √ | √ |
| gdrive | ? | ? | ? | ? |
| ghac | ? | ? | ? | ? |
| github | ? | ? | ? | ? |
| goosefs | ? | ? | ? | ? |
| gridfs | ? | ? | ? | ? |
| hdfs | ? | ? | ? | ? |
| hdfs-native | ? | ? | ? | ? |
| hf | ? | ? | ? | ? |
| http | auth.is_none(), | auth.is_none(), | auth.is_none(), | ? |
| ipfs | ? | ? | ? | ? |
| ipmfs | ? | ? | ? | ? |
| koofr | ? | ? | ? | ? |
| lakefs | ? | ? | ? | ? |
| memcached | ? | ? | ? | ? |
| mini_moka | ? | ? | ? | ? |
| moka | ? | ? | ? | ? |
| mongodb | ? | ? | ? | ? |
| monoiofs | ? | ? | ? | ? |
| mysql | UNSUP | UNSUP | UNSUP | UNSUP |
| obs | √ | √ | √ | √ |
| onedrive | ? | ? | ? | ? |
| opfs | ? | ? | ? | ? |
| oss | √ | √ | √ | √ |
| pcloud | ? | ? | ? | ? |
| persy | ? | ? | ? | ? |
| postgresql | UNSUP | UNSUP | UNSUP | UNSUP |
| redb | ? | ? | ? | ? |
| redis | UNSUP | UNSUP | UNSUP | UNSUP |
| rocksdb | UNSUP | UNSUP | UNSUP | UNSUP |
| s3 | √ | √ | √ | √ |
| seafile | ? | ? | ? | ? |
| sftp | UNSUP | UNSUP | UNSUP | UNSUP |
| sled | ? | ? | ? | ? |
| sqlite | UNSUP | UNSUP | UNSUP | UNSUP |
| surrealdb | ? | ? | ? | ? |
| swift | has_temp_url_key, | has_temp_url_key, | has_temp_url_key, | has_temp_url_key, |
| tikv | ? | ? | ? | ? |
| tos | ? | ? | ? | ? |
| upyun | ? | ? | ? | ? |
| vercel-artifacts | ? | ? | ? | ? |
| vercel-blob | ? | ? | ? | ? |
| webdav | ? | ? | ? | ? |
| webhdfs | ? | ? | ? | ? |
| yandex-disk | ? | ? | ? | ? |

## Other

| service | create_dir | rename | shared |
| --- | --- | --- | --- |
| memory | ? | ? | no |
| aliyun-drive | √ | √ | yes |
| azdls | √ | √ | yes |
| azfile | √ | √ | yes |
| compfs | √ | √ | yes |
| dbfs | √ | √ | yes |
| dropbox | √ | √ | yes |
| fs | √ | √ | yes |
| gdrive | √ | √ | yes |
| goosefs | √ | √ | yes |
| hdfs | √ | √ | yes |
| hdfs-native | √ | √ | yes |
| koofr | √ | √ | yes |
| mini_moka | ? | ? | no |
| opfs | √ | ? | yes |
| pcloud | √ | √ | yes |
| sftp | √ | √ | yes |
| upyun | √ | √ | yes |
| webdav | √ | √ | yes |
| yandex-disk | √ | √ | yes |
| alluxio | √ | ? | yes |
| cloudflare-kv | √ | ? | no |
| ftp | √ | ? | yes |
| github | √ | ? | yes |
| seafile | √ | ? | yes |
| sqlite | √ | ? | no |
| webhdfs | √ | ? | yes |
| azblob | ? | ? | yes |
| b2 | ? | ? | yes |
| cos | ? | ? | yes |
| d1 | ? | ? | yes |
| dashmap | ? | [?](https://github.com/apache/opendal/pull/2513) | no |
| etcd | ? | ? | yes |
| foundationdb | ? | ? | yes |
| foyer | ? | ? | yes |
| gcs | ? | ? | yes |
| ghac | ? | ? | yes |
| gridfs | ? | ? | yes |
| hf | ? | ? | yes |
| http | ? | ? | yes |
| ipfs | ? | ? | yes |
| ipmfs | ? | ? | yes |
| lakefs | ? | ? | yes |
| memcached | ? | ? | yes |
| moka | ? | [?](https://github.com/apache/opendal/pull/2513) | no |
| mongodb | ? | ? | yes |
| mysql | ? | ? | yes |
| obs | ? | ? | yes |
| oss | ? | ? | yes |
| persy | ? | ? | no |
| postgresql | ? | ? | yes |
| redb | ? | ? | no |
| redis | ? | ? | yes |
| rocksdb | ? | ? | no |
| s3 | ? | ? | yes |
| sled | ? | ? | no |
| surrealdb | ? | ? | yes |
| swift | ? | ? | yes |
| tikv | ? | ? | yes |
| tos | ? | ? | yes |
| vercel-artifacts | ? | ? | yes |
| vercel-blob | ? | ? | yes |
| cacache | ? | × | no |
| monoiofs | √ | √ | yes |
| onedrive | √ | √ | yes |

Contributor guide

Open the contributing guide

Research direction

Start by reading the service Capability objects in the code and comparing their properties with the capability overview tables in this issue. Verify unknown entries and distinguish unsupported services from unimplemented or in-progress features, including the linked WebDAV work. Done means the overview is accurate and, if adopted, is added to the OpenDAL documentation page.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
documentation
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.