https://opendal.apache.org/ logo
It seems there are 62 backends that don'
# general
q
It seems there are 62 backends that don't support
write_with_if_match
60 of which support
write
, (
http
and
ipfs
don't)
Filtering out those who also don't support
write_with_if_none_match
results in 57 services
aliyun-drive
,
alluxio
,
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
,
ipmfs
,
koofr
,
lakefs
,
memcached
,
mini_moka
,
moka
,
mongodb
,
monoiofs
,
mysql
,
obs
,
opfs
,
oss
,
pcloud
,
persy
,
postgresql
,
redb
,
redis
,
rocksdb
,
seafile
,
sftp
,
sled
,
sqlite
,
surrealdb
,
swift
,
tikv
,
upyun
,
vercel-artifacts
,
vercel-blob
,
webdav
,
webhdfs
,
yandex-disk
And the script itself
Copy code
nu
let caps = ls core/services/**/*.rs | where {|r| ($r.name | str contains 'backend') or ($r.name | str contains 'core') } | reject type size modified | insert service {|r| $r.name | parse --regex 'core/services/(?<service>[^/]+)/' | get service | first } | insert cap_fragment {|f| open $f.name | lines | skip until {|x| $x | str contains 'Capability {' } | take until {|x| $x | str contains '..Default::default()' } | skip 1 | each {|l| $l | str trim } } | group-by service | transpose service caps | update caps {|r| $r.caps | select name cap_fragment | where {|f| ($f.cap_fragment | length) > 0 and not ($f.cap_fragment | any {|l| $l | str contains 'async' })} } | flatten | flatten | insert caps {|r| $r.cap_fragment | each {|l| $l | parse --regex '(?<cap>\w+?): (?<val>.+)' } | flatten } | reject cap_fragment name
e
This is not the right approach. You want to go to each service’s documentation and validate their support.
Capability is there to document if a service supports something. It could be not implemented or the service doesn’t support it. We could always improve the latter with documentation.
q
I tried finding it by looking at the service documentation page but those only seem to show 8 base capabilities (
create_dir
,
stat
,
read
, etc.)
I think it would be helpful to have an overview with all services and all capabilities and whether they are implemented, not implemented but possible, not possible, or simply unknown.
I was actually just making an overview for the tracking issue. Perhaps that could serve as a base for future documentation?
e
Yes, an overview is truly impressive. This could take a huge chunk of time to maintain if you maintain by a program with automation. I was suggesting 1. Read each service’s website (not OpenDAL’s) to see if they actually support an operation. 2) OpenDAL records each capability already as you found out. 3) OpenDAL has a few tracking issues. They are for knowing what features we want to add but haven’t. 4) all being said, it’s likely we don’t have an exact recording of all above information. So an overview is helpful. 5) back to the assumption, I hope we can automate this with either code or agent. This could help maintainers and users .