Tracking issues of RFC-3197: Config
- RFC: https://github.com/apache/incubator-opendal/pull/3197
Notes
This issue intends to add config for every service.
Take https://github.com/apache/incubator-opendal/pull/3490 as an example, we just need to move deserialize-able fields (like String, bool, usize) into XxxConfig:
#[derive(Default, Deserialize)]
#[serde(default)]
#[non_exhaustive]
pub struct XxxConfig {
/// Comments
pub root: Option<String>,
}
Please note: all fields here should be pub.
And use XxxConfig to replace existing fields:
#[derive(Default)]
pub struct XxxBuilder {
+ config: XxxConfig,
- root: Option<String>,
- abc: String,
- ...
customed_credential_load: Option<Box<dyn AwsCredentialLoad>>,
http_client: Option<HttpClient>,
}
Leave fields like http_client as is.
Change the Builder::from_map implemantion to:
- let mut builder = XxxBuilder::default();
-
- map.get("root").map(|v| builder.root(v));
+ let config = XxxConfig::deserialize(ConfigDeserializer::new(map))
.expect("config deserialize must succeed");
Tasks
- [x] Atomicserver https://github.com/apache/incubator-opendal/pull/3845
- [x] Azblob #3553
- [x] Azdls https://github.com/apache/opendal/pull/4277
- [x] Azfile https://github.com/apache/opendal/pull/4277
- [x] Cacache https://github.com/apache/opendal/pull/4277
- [x] CloudflareKv https://github.com/apache/opendal/pull/4277
- [x] Cos https://github.com/apache/opendal/pull/4277
- [x] D1 #4129
- [x] Dashmap https://github.com/apache/opendal/pull/4277
- [x] Dbfs https://github.com/apache/opendal/pull/4277
- [x] Dropbox https://github.com/apache/incubator-opendal/pull/3961
- [x] Etcd: https://github.com/apache/incubator-opendal/pull/3543
- [ ] Foundationdb
- [ ] Fs
- [x] Ftp: https://github.com/apache/incubator-opendal/pull/3510
- [x] Gcs #3786
- [x] Gdrive https://github.com/apache/incubator-opendal/pull/4002
- [ ] Ghac
- [ ] Hdfs
- [x] Http: https://github.com/apache/incubator-opendal/pull/3507
- [ ] Ipfs
- [ ] Ipmfs
- [x] Libsql https://github.com/apache/incubator-opendal/pull/3501
- [x] Memcached
- [ ] Memory
- [ ] MiniMoka
- [x] Moka #3711
- [x] Mongodb https://github.com/apache/incubator-opendal/pull/3906
- [x] Mysql https://github.com/apache/incubator-opendal/pull/3499
- [ ] Obs
- [x] Onedrive https://github.com/apache/incubator-opendal/pull/3954
- [ ] Oss
- [ ] Persy
- [x] Postgresql: https://github.com/apache/incubator-opendal/pull/3495
- [ ] Redb
- [x] Redis: https://github.com/apache/incubator-opendal/pull/3498
- [x] Rocksdb: https://github.com/apache/incubator-opendal/pull/3828
- [x] S3: https://github.com/apache/incubator-opendal/pull/3490
- [x] Sftp: https://github.com/apache/incubator-opendal/pull/3511
- [ ] Sled
- [x] Sqlite: https://github.com/apache/incubator-opendal/pull/3497
- [ ] Supabase
- [ ] Swift
- [x] Tikv: https://github.com/apache/incubator-opendal/pull/3512
- [ ] VercelArtifacts
- [x] WebDAV https://github.com/apache/incubator-opendal/pull/3846
- [ ] Webhdfs
I want to try sqlite
I want to try sqlite
Thanks a lot, have fun!
I want to try azblob
I want to try Postgresql
I want to try azblob
Have fun!
I want to try Postgresql
Have fun too!
I want to try Mysql and Libsql
I want to try Mysql and Libsql
Hi, let's take issues one by one instead trying to take places. How about taking mysql first?
I want to try sqlite
request assign redis
i want to try tikv
i want to try tikv
Thanks! Have fun.
Thank you for all your passion! There's no rush on this tracking issue, and I'd like it to be the first task for contributors. Once you've completed a task, please move onto others so we can involve more people in this event.
First-time contributor here! I'd like to take a look at the CloudflareKv service.
i want to try etcd
i want to try etcd
Thanks a lot, have fun!
i want to try Rocksdb
i want to try Rocksdb
Have fun!
I want to try Fs
Hi @Xuanwo , for FS we don't have any config and the two attributes in builder are PathBuf. We would not need this change for Fs, right ? If thats the case, I can go ahead and pick up hdfs. Please let me know your thoughts.
If thats the case, I can go ahead and pick up hdfs. Please let me know your thoughts.
Thanks, please go ahead.
hey i want to try memcached and rocksdb. it seems @cjj2010 is already working on rocksdb, so maybe i can work with him on it. it would be great if you assign memcached to me. thanks.
hey i want to try memcached and rocksdb. it seems @cjj2010 is already working on rocksdb, so maybe i can work with him on it. it would be great if you assign memcached to me. thanks.
Thanks, assigned.
I would also like to work on gdrive and ipfs.
Thank you for all your passion! There's no rush on this tracking issue, and I'd like it to be the first task for contributors. Once you've completed a task, please move onto others so we can involve more people in this event.
Hi, Thank you for all your passion! There's no rush on this tracking issue, and I'd like it to be the first task for contributors. How about moving onto others so we can involve more people in this event?
Sure, I will look into other issues and try to contribute there. I would be better off leaving this issue for newcomers. Thanks.
Hi, I would like to work on Atomicserver.
Hi, I would like to work on Atomicserver.
Thanks a lot! Welcome.
i want to try mongodb.
I would like to work on dropbox.
I would like to work on dropbox.
Thanks, assigned!
let my try the sled