This is an automated email from the ASF dual-hosted git repository. xuanwo pushed a commit to branch xuanwo/move-ctor-facade in repository https://gitbox.apache.org/repos/asf/opendal.git
commit 4359077df59e25371aeb956a8a22a0e39f2a70f4 Author: Xuanwo <[email protected]> AuthorDate: Wed Dec 24 15:37:09 2025 +0800 refactor: Register services only in opendal --- core/Cargo.lock | 63 +---------- core/Cargo.toml | 1 + core/core/Cargo.toml | 1 - core/core/src/docs/rfcs/6828_core.md | 2 +- core/core/src/services/memory/mod.rs | 7 -- core/core/src/types/operator/registry.rs | 4 +- core/services/aliyun-drive/Cargo.toml | 1 - core/services/aliyun-drive/src/lib.rs | 7 -- core/services/alluxio/Cargo.toml | 1 - core/services/alluxio/src/lib.rs | 7 -- core/services/azblob/Cargo.toml | 1 - core/services/azblob/src/lib.rs | 7 -- core/services/azdls/Cargo.toml | 1 - core/services/azdls/src/lib.rs | 7 -- core/services/azfile/Cargo.toml | 1 - core/services/azfile/src/lib.rs | 7 -- core/services/b2/Cargo.toml | 1 - core/services/b2/src/lib.rs | 7 -- core/services/cacache/Cargo.toml | 1 - core/services/cacache/src/lib.rs | 5 - core/services/cloudflare-kv/Cargo.toml | 1 - core/services/cloudflare-kv/src/lib.rs | 5 - core/services/compfs/Cargo.toml | 1 - core/services/compfs/src/lib.rs | 5 - core/services/cos/Cargo.toml | 1 - core/services/cos/src/lib.rs | 7 -- core/services/d1/Cargo.toml | 1 - core/services/d1/src/lib.rs | 5 - core/services/dashmap/Cargo.toml | 1 - core/services/dashmap/src/lib.rs | 5 - core/services/dbfs/Cargo.toml | 1 - core/services/dbfs/src/lib.rs | 5 - core/services/dropbox/Cargo.toml | 1 - core/services/dropbox/src/lib.rs | 5 - core/services/etcd/Cargo.toml | 1 - core/services/etcd/src/lib.rs | 5 - core/services/foundationdb/Cargo.toml | 1 - core/services/foundationdb/src/lib.rs | 5 - core/services/fs/Cargo.toml | 1 - core/services/fs/src/lib.rs | 7 -- core/services/ftp/Cargo.toml | 1 - core/services/ftp/src/lib.rs | 7 -- core/services/gcs/Cargo.toml | 1 - core/services/gcs/src/lib.rs | 5 - core/services/gdrive/Cargo.toml | 1 - core/services/gdrive/src/lib.rs | 7 -- core/services/ghac/Cargo.toml | 1 - core/services/ghac/src/lib.rs | 7 -- core/services/github/Cargo.toml | 1 - core/services/github/src/lib.rs | 7 -- core/services/github/src/mod.rs | 6 -- core/services/gridfs/Cargo.toml | 1 - core/services/gridfs/src/lib.rs | 5 - core/services/hdfs-native/Cargo.toml | 1 - core/services/hdfs-native/src/lib.rs | 7 -- core/services/hdfs/Cargo.toml | 1 - core/services/hdfs/src/lib.rs | 7 -- core/services/http/Cargo.toml | 1 - core/services/http/src/lib.rs | 5 - core/services/huggingface/Cargo.toml | 1 - core/services/huggingface/src/lib.rs | 7 -- core/services/ipfs/Cargo.toml | 1 - core/services/ipfs/src/lib.rs | 5 - core/services/ipmfs/Cargo.toml | 1 - core/services/ipmfs/src/lib.rs | 7 -- core/services/koofr/Cargo.toml | 1 - core/services/koofr/src/lib.rs | 7 -- core/services/lakefs/Cargo.toml | 1 - core/services/lakefs/src/lib.rs | 5 - core/services/memcached/Cargo.toml | 1 - core/services/memcached/src/lib.rs | 5 - core/services/mini_moka/Cargo.toml | 1 - core/services/mini_moka/src/lib.rs | 5 - core/services/moka/Cargo.toml | 1 - core/services/moka/src/lib.rs | 5 - core/services/mongodb/Cargo.toml | 1 - core/services/mongodb/src/lib.rs | 7 -- core/services/monoiofs/Cargo.toml | 1 - core/services/monoiofs/src/lib.rs | 5 - core/services/mysql/Cargo.toml | 1 - core/services/mysql/src/lib.rs | 7 -- core/services/obs/Cargo.toml | 1 - core/services/obs/src/lib.rs | 7 -- core/services/onedrive/Cargo.toml | 1 - core/services/onedrive/src/lib.rs | 5 - core/services/opfs/Cargo.toml | 1 - core/services/opfs/src/lib.rs | 7 -- core/services/oss/Cargo.toml | 1 - core/services/oss/src/lib.rs | 5 - core/services/pcloud/Cargo.toml | 1 - core/services/pcloud/src/lib.rs | 5 - core/services/persy/Cargo.toml | 1 - core/services/persy/src/lib.rs | 5 - core/services/postgresql/Cargo.toml | 1 - core/services/postgresql/src/lib.rs | 7 -- core/services/redb/Cargo.toml | 1 - core/services/redb/src/lib.rs | 5 - core/services/redis/Cargo.toml | 1 - core/services/redis/src/lib.rs | 5 - core/services/rocksdb/Cargo.toml | 1 - core/services/rocksdb/src/lib.rs | 7 -- core/services/s3/Cargo.toml | 1 - core/services/s3/src/lib.rs | 5 - core/services/s3/src/mod.rs | 6 -- core/services/seafile/Cargo.toml | 1 - core/services/seafile/src/lib.rs | 7 -- core/services/sftp/Cargo.toml | 1 - core/services/sftp/src/lib.rs | 5 - core/services/sled/Cargo.toml | 1 - core/services/sled/src/lib.rs | 7 -- core/services/sqlite/Cargo.toml | 1 - core/services/sqlite/src/lib.rs | 7 -- core/services/surrealdb/Cargo.toml | 1 - core/services/surrealdb/src/lib.rs | 5 - core/services/swift/Cargo.toml | 1 - core/services/swift/src/lib.rs | 7 -- core/services/tikv/Cargo.toml | 1 - core/services/tikv/src/lib.rs | 7 -- core/services/upyun/Cargo.toml | 1 - core/services/upyun/src/lib.rs | 5 - core/services/vercel-artifacts/Cargo.toml | 1 - core/services/vercel-artifacts/src/lib.rs | 7 -- core/services/vercel-blob/Cargo.toml | 1 - core/services/vercel-blob/src/lib.rs | 7 -- core/services/webdav/Cargo.toml | 1 - core/services/webdav/src/lib.rs | 7 -- core/services/webhdfs/Cargo.toml | 1 - core/services/webhdfs/src/lib.rs | 7 -- core/services/yandex-disk/Cargo.toml | 1 - core/services/yandex-disk/src/lib.rs | 5 - core/src/lib.rs | 172 ++++++++++++++++++++++++++++++ 131 files changed, 178 insertions(+), 514 deletions(-) diff --git a/core/Cargo.lock b/core/Cargo.lock index 852e81b01..a9e83990c 100644 --- a/core/Cargo.lock +++ b/core/Cargo.lock @@ -5539,6 +5539,7 @@ version = "0.55.0" dependencies = [ "anyhow", "bytes", + "ctor", "divan", "futures", "http 1.4.0", @@ -5672,7 +5673,6 @@ dependencies = [ "anyhow", "base64 0.22.1", "bytes", - "ctor", "futures", "http 1.4.0", "http-body 1.0.1", @@ -5968,7 +5968,6 @@ name = "opendal-service-aliyun-drive" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "mea", @@ -5983,7 +5982,6 @@ name = "opendal-service-alluxio" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -5998,7 +5996,6 @@ version = "0.55.0" dependencies = [ "base64 0.22.1", "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6018,7 +6015,6 @@ name = "opendal-service-azdls" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6035,7 +6031,6 @@ name = "opendal-service-azfile" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6060,7 +6055,6 @@ name = "opendal-service-b2" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "mea", @@ -6076,7 +6070,6 @@ version = "0.55.0" dependencies = [ "bytes", "cacache", - "ctor", "opendal-core", "serde", "tokio", @@ -6087,7 +6080,6 @@ name = "opendal-service-cloudflare-kv" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "opendal-core", "serde", @@ -6100,7 +6092,6 @@ version = "0.55.0" dependencies = [ "bytes", "compio", - "ctor", "opendal-core", "rand 0.8.5", "serde", @@ -6111,7 +6102,6 @@ name = "opendal-service-cos" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6127,7 +6117,6 @@ name = "opendal-service-d1" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "opendal-core", "serde", @@ -6139,7 +6128,6 @@ dependencies = [ name = "opendal-service-dashmap" version = "0.55.0" dependencies = [ - "ctor", "dashmap 6.1.0", "log", "opendal-core", @@ -6153,7 +6141,6 @@ version = "0.55.0" dependencies = [ "base64 0.22.1", "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6167,7 +6154,6 @@ name = "opendal-service-dropbox" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "mea", "opendal-core", @@ -6180,7 +6166,6 @@ dependencies = [ name = "opendal-service-etcd" version = "0.55.0" dependencies = [ - "ctor", "etcd-client", "fastpool", "opendal-core", @@ -6192,7 +6177,6 @@ dependencies = [ name = "opendal-service-foundationdb" version = "0.55.0" dependencies = [ - "ctor", "foundationdb", "opendal-core", "serde", @@ -6204,7 +6188,6 @@ name = "opendal-service-fs" version = "0.55.0" dependencies = [ "bytes", - "ctor", "log", "opendal-core", "serde", @@ -6217,7 +6200,6 @@ name = "opendal-service-ftp" version = "0.55.0" dependencies = [ "bytes", - "ctor", "fastpool", "futures", "futures-rustls", @@ -6236,7 +6218,6 @@ version = "0.55.0" dependencies = [ "backon", "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6254,7 +6235,6 @@ name = "opendal-service-gdrive" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "mea", @@ -6269,7 +6249,6 @@ name = "opendal-service-ghac" version = "0.55.0" dependencies = [ "bytes", - "ctor", "ghac", "http 1.4.0", "log", @@ -6289,7 +6268,6 @@ version = "0.55.0" dependencies = [ "base64 0.22.1", "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6302,7 +6280,6 @@ dependencies = [ name = "opendal-service-gridfs" version = "0.55.0" dependencies = [ - "ctor", "futures", "mea", "mongodb", @@ -6316,7 +6293,6 @@ name = "opendal-service-hdfs" version = "0.55.0" dependencies = [ "bytes", - "ctor", "futures", "hdrs", "log", @@ -6330,7 +6306,6 @@ name = "opendal-service-hdfs-native" version = "0.55.0" dependencies = [ "bytes", - "ctor", "futures", "hdfs-native", "log", @@ -6342,7 +6317,6 @@ dependencies = [ name = "opendal-service-http" version = "0.55.0" dependencies = [ - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6355,7 +6329,6 @@ name = "opendal-service-huggingface" version = "0.55.0" dependencies = [ "bytes", - "ctor", "futures", "http 1.4.0", "log", @@ -6371,7 +6344,6 @@ name = "opendal-service-ipfs" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6385,7 +6357,6 @@ name = "opendal-service-ipmfs" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6399,7 +6370,6 @@ name = "opendal-service-koofr" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "mea", @@ -6414,7 +6384,6 @@ name = "opendal-service-lakefs" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6427,7 +6396,6 @@ dependencies = [ name = "opendal-service-memcached" version = "0.55.0" dependencies = [ - "ctor", "fastpool", "http 1.4.0", "opendal-core", @@ -6439,7 +6407,6 @@ dependencies = [ name = "opendal-service-mini-moka" version = "0.55.0" dependencies = [ - "ctor", "log", "mini-moka", "opendal-core", @@ -6450,7 +6417,6 @@ dependencies = [ name = "opendal-service-moka" version = "0.55.0" dependencies = [ - "ctor", "log", "moka", "opendal-core", @@ -6463,7 +6429,6 @@ name = "opendal-service-mongodb" version = "0.55.0" dependencies = [ "anyhow", - "ctor", "mea", "mongodb", "opendal-core", @@ -6476,7 +6441,6 @@ name = "opendal-service-monoiofs" version = "0.55.0" dependencies = [ "bytes", - "ctor", "flume", "futures", "monoio", @@ -6489,7 +6453,6 @@ dependencies = [ name = "opendal-service-mysql" version = "0.55.0" dependencies = [ - "ctor", "mea", "opendal-core", "serde", @@ -6502,7 +6465,6 @@ name = "opendal-service-obs" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6517,7 +6479,6 @@ name = "opendal-service-onedrive" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "mea", @@ -6531,7 +6492,6 @@ dependencies = [ name = "opendal-service-opfs" version = "0.55.0" dependencies = [ - "ctor", "js-sys", "opendal-core", "serde", @@ -6545,7 +6505,6 @@ name = "opendal-service-oss" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6561,7 +6520,6 @@ name = "opendal-service-pcloud" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6574,7 +6532,6 @@ dependencies = [ name = "opendal-service-persy" version = "0.55.0" dependencies = [ - "ctor", "opendal-core", "persy", "serde", @@ -6585,7 +6542,6 @@ dependencies = [ name = "opendal-service-postgresql" version = "0.55.0" dependencies = [ - "ctor", "mea", "opendal-core", "serde", @@ -6597,7 +6553,6 @@ dependencies = [ name = "opendal-service-redb" version = "0.55.0" dependencies = [ - "ctor", "opendal-core", "redb", "serde", @@ -6609,7 +6564,6 @@ name = "opendal-service-redis" version = "0.55.0" dependencies = [ "bytes", - "ctor", "fastpool", "http 1.4.0", "opendal-core", @@ -6622,7 +6576,6 @@ dependencies = [ name = "opendal-service-rocksdb" version = "0.55.0" dependencies = [ - "ctor", "opendal-core", "rocksdb", "serde", @@ -6636,7 +6589,6 @@ dependencies = [ "base64 0.22.1", "bytes", "crc32c", - "ctor", "http 1.4.0", "log", "md-5", @@ -6659,7 +6611,6 @@ name = "opendal-service-seafile" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "mea", @@ -6675,7 +6626,6 @@ version = "0.55.0" dependencies = [ "anyhow", "bytes", - "ctor", "fastpool", "futures", "log", @@ -6690,7 +6640,6 @@ dependencies = [ name = "opendal-service-sled" version = "0.55.0" dependencies = [ - "ctor", "opendal-core", "serde", "sled", @@ -6701,7 +6650,6 @@ dependencies = [ name = "opendal-service-sqlite" version = "0.55.0" dependencies = [ - "ctor", "mea", "opendal-core", "serde", @@ -6713,7 +6661,6 @@ dependencies = [ name = "opendal-service-surrealdb" version = "0.55.0" dependencies = [ - "ctor", "mea", "opendal-core", "serde", @@ -6726,7 +6673,6 @@ name = "opendal-service-swift" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6740,7 +6686,6 @@ dependencies = [ name = "opendal-service-tikv" version = "0.55.0" dependencies = [ - "ctor", "mea", "opendal-core", "serde", @@ -6754,7 +6699,6 @@ version = "0.55.0" dependencies = [ "base64 0.22.1", "bytes", - "ctor", "hmac", "http 1.4.0", "log", @@ -6773,7 +6717,6 @@ version = "0.55.0" dependencies = [ "anyhow", "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6787,7 +6730,6 @@ name = "opendal-service-vercel-blob" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", @@ -6803,7 +6745,6 @@ version = "0.55.0" dependencies = [ "anyhow", "bytes", - "ctor", "http 1.4.0", "log", "mea", @@ -6819,7 +6760,6 @@ version = "0.55.0" dependencies = [ "anyhow", "bytes", - "ctor", "http 1.4.0", "log", "mea", @@ -6835,7 +6775,6 @@ name = "opendal-service-yandex-disk" version = "0.55.0" dependencies = [ "bytes", - "ctor", "http 1.4.0", "log", "opendal-core", diff --git a/core/Cargo.toml b/core/Cargo.toml index f3f58c972..13fdd4d04 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -201,6 +201,7 @@ path = "tests/behavior/main.rs" required-features = ["tests"] [dependencies] +ctor = { workspace = true } opendal-core = { path = "core", version = "0.55.0", default-features = false } opendal-layer-async-backtrace = { path = "layers/async-backtrace", version = "0.55.0", optional = true, default-features = false } opendal-layer-await-tree = { path = "layers/await-tree", version = "0.55.0", optional = true, default-features = false } diff --git a/core/core/Cargo.toml b/core/core/Cargo.toml index 650628588..c316fa355 100644 --- a/core/core/Cargo.toml +++ b/core/core/Cargo.toml @@ -65,7 +65,6 @@ doctest = false anyhow = { version = "1.0.100", features = ["std"] } base64 = { workspace = true } bytes = { workspace = true } -ctor = { workspace = true } futures = { workspace = true, features = ["std", "async-await"] } http = { workspace = true } http-body = "1" diff --git a/core/core/src/docs/rfcs/6828_core.md b/core/core/src/docs/rfcs/6828_core.md index 2ef54a627..764bcc352 100644 --- a/core/core/src/docs/rfcs/6828_core.md +++ b/core/core/src/docs/rfcs/6828_core.md @@ -50,7 +50,7 @@ opendal = { version = "0.56", features = ["service-s3", "layer-logging"] } - `opendal` facade - Depends on `opendal-core` (mandatory), `opendal-layer-*` and `opendal-service-*` as optional deps behind features. - Re-exports `core::{Operator, Result, ...}`, critical layers, and optional services/layers. - - On build, each enabled service self-registers via a `ctor` initializer to populate `DEFAULT_OPERATOR_REGISTRY`. + - On build, the facade crate registers enabled services via a single `ctor` initializer to populate `DEFAULT_OPERATOR_REGISTRY`. - Maintains feature aliases for one major version (e.g., `services-s3` -> `service-s3`, `layers-logging` -> `layer-logging`). ## Feature matrix diff --git a/core/core/src/services/memory/mod.rs b/core/core/src/services/memory/mod.rs index 80a0bf3da..71af2d39d 100644 --- a/core/core/src/services/memory/mod.rs +++ b/core/core/src/services/memory/mod.rs @@ -18,8 +18,6 @@ /// Default scheme for memory service. pub const MEMORY_SCHEME: &str = "memory"; -use crate::types::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -29,8 +27,3 @@ mod writer; pub use backend::MemoryBuilder as Memory; pub use config::MemoryConfig; - -#[ctor::ctor] -fn register_memory_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Memory>(MEMORY_SCHEME); -} diff --git a/core/core/src/types/operator/registry.rs b/core/core/src/types/operator/registry.rs index 8afeee43f..ff25fd443 100644 --- a/core/core/src/types/operator/registry.rs +++ b/core/core/src/types/operator/registry.rs @@ -25,7 +25,9 @@ use crate::{Error, ErrorKind, Operator, Result}; /// Factory signature used to construct [`Operator`] from a URI and extra options. pub type OperatorFactory = fn(&OperatorUri) -> Result<Operator>; -/// Default registry initialized with builtin services. +/// Default registry used by [`Operator::from_uri`]. +/// +/// Builtin registrations are handled by the facade crate `opendal`. pub static DEFAULT_OPERATOR_REGISTRY: LazyLock<OperatorRegistry> = LazyLock::new(OperatorRegistry::new); diff --git a/core/services/aliyun-drive/Cargo.toml b/core/services/aliyun-drive/Cargo.toml index 30d3a5790..bbf424b1a 100644 --- a/core/services/aliyun-drive/Cargo.toml +++ b/core/services/aliyun-drive/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } mea = "0.5.1" diff --git a/core/services/aliyun-drive/src/lib.rs b/core/services/aliyun-drive/src/lib.rs index a70d37719..7cc6a5d9b 100644 --- a/core/services/aliyun-drive/src/lib.rs +++ b/core/services/aliyun-drive/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for aliyun-drive service. pub const ALIYUN_DRIVE_SCHEME: &str = "aliyun-drive"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -30,8 +28,3 @@ mod writer; pub use backend::AliyunDriveBuilder as AliyunDrive; pub use config::AliyunDriveConfig; - -#[ctor::ctor] -fn register_aliyun_drive_service() { - DEFAULT_OPERATOR_REGISTRY.register::<AliyunDrive>(ALIYUN_DRIVE_SCHEME); -} diff --git a/core/services/alluxio/Cargo.toml b/core/services/alluxio/Cargo.toml index 323f4a128..0c786de9b 100644 --- a/core/services/alluxio/Cargo.toml +++ b/core/services/alluxio/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/alluxio/src/lib.rs b/core/services/alluxio/src/lib.rs index 29908c174..6fa29ade2 100644 --- a/core/services/alluxio/src/lib.rs +++ b/core/services/alluxio/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for alluxio service. pub const ALLUXIO_SCHEME: &str = "alluxio"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -30,8 +28,3 @@ mod writer; pub use backend::AlluxioBuilder as Alluxio; pub use config::AlluxioConfig; - -#[ctor::ctor] -fn register_alluxio_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Alluxio>(ALLUXIO_SCHEME); -} diff --git a/core/services/azblob/Cargo.toml b/core/services/azblob/Cargo.toml index 0f617e2eb..87274adf4 100644 --- a/core/services/azblob/Cargo.toml +++ b/core/services/azblob/Cargo.toml @@ -33,7 +33,6 @@ all-features = true [dependencies] base64 = { workspace = true } bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/azblob/src/lib.rs b/core/services/azblob/src/lib.rs index 69fdf9d88..5263772f8 100644 --- a/core/services/azblob/src/lib.rs +++ b/core/services/azblob/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for azblob service. pub const AZBLOB_SCHEME: &str = "azblob"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; pub mod core; @@ -30,8 +28,3 @@ pub mod writer; pub use backend::AzblobBuilder as Azblob; pub use config::AzblobConfig; - -#[ctor::ctor] -fn register_azblob_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Azblob>(AZBLOB_SCHEME); -} diff --git a/core/services/azdls/Cargo.toml b/core/services/azdls/Cargo.toml index 222f0dd85..820594838 100644 --- a/core/services/azdls/Cargo.toml +++ b/core/services/azdls/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/azdls/src/lib.rs b/core/services/azdls/src/lib.rs index 9c139e977..90dc9ab68 100644 --- a/core/services/azdls/src/lib.rs +++ b/core/services/azdls/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for azdls service. pub const AZDLS_SCHEME: &str = "azdls"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -30,8 +28,3 @@ mod writer; pub use backend::AzdlsBuilder as Azdls; pub use config::AzdlsConfig; - -#[ctor::ctor] -fn register_azdls_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Azdls>(AZDLS_SCHEME); -} diff --git a/core/services/azfile/Cargo.toml b/core/services/azfile/Cargo.toml index 45e67b993..4741324dc 100644 --- a/core/services/azfile/Cargo.toml +++ b/core/services/azfile/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/azfile/src/lib.rs b/core/services/azfile/src/lib.rs index ea3f41abf..971b9103e 100644 --- a/core/services/azfile/src/lib.rs +++ b/core/services/azfile/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for azfile service. pub const AZFILE_SCHEME: &str = "azfile"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -30,8 +28,3 @@ mod writer; pub use backend::AzfileBuilder as Azfile; pub use config::AzfileConfig; - -#[ctor::ctor] -fn register_azfile_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Azfile>(AZFILE_SCHEME); -} diff --git a/core/services/b2/Cargo.toml b/core/services/b2/Cargo.toml index 68b552b80..46222a85f 100644 --- a/core/services/b2/Cargo.toml +++ b/core/services/b2/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } mea = "0.5.1" diff --git a/core/services/b2/src/lib.rs b/core/services/b2/src/lib.rs index 76ac1d363..da064ef10 100644 --- a/core/services/b2/src/lib.rs +++ b/core/services/b2/src/lib.rs @@ -22,8 +22,6 @@ /// Default scheme for b2 service. pub const B2_SCHEME: &str = "b2"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -34,8 +32,3 @@ mod writer; pub use backend::B2Builder as B2; pub use config::B2Config; - -#[ctor::ctor] -fn register_b2_service() { - DEFAULT_OPERATOR_REGISTRY.register::<B2>(B2_SCHEME); -} diff --git a/core/services/cacache/Cargo.toml b/core/services/cacache/Cargo.toml index 3f3f0bbd1..fdd26b52b 100644 --- a/core/services/cacache/Cargo.toml +++ b/core/services/cacache/Cargo.toml @@ -36,7 +36,6 @@ cacache = { version = "13.0", default-features = false, features = [ "tokio-runtime", "mmap", ] } -ctor = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/cacache/src/lib.rs b/core/services/cacache/src/lib.rs index 92c48600f..a30b5488c 100644 --- a/core/services/cacache/src/lib.rs +++ b/core/services/cacache/src/lib.rs @@ -31,8 +31,3 @@ pub use config::CacacheConfig; /// Default scheme for cacache service. pub const CACACHE_SCHEME: &str = "cacache"; - -#[ctor::ctor] -fn register_cacache_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Cacache>(CACACHE_SCHEME); -} diff --git a/core/services/cloudflare-kv/Cargo.toml b/core/services/cloudflare-kv/Cargo.toml index 0d8999e99..3a886dddd 100644 --- a/core/services/cloudflare-kv/Cargo.toml +++ b/core/services/cloudflare-kv/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/cloudflare-kv/src/lib.rs b/core/services/cloudflare-kv/src/lib.rs index fc0d489e0..a1097f4f2 100644 --- a/core/services/cloudflare-kv/src/lib.rs +++ b/core/services/cloudflare-kv/src/lib.rs @@ -33,8 +33,3 @@ pub use config::CloudflareKvConfig; /// Default scheme for cloudflare-kv service. pub const CLOUDFLARE_KV_SCHEME: &str = "cloudflare-kv"; - -#[ctor::ctor] -fn register_cloudflare_kv_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<CloudflareKv>(CLOUDFLARE_KV_SCHEME); -} diff --git a/core/services/compfs/Cargo.toml b/core/services/compfs/Cargo.toml index 44992f821..0e42deed0 100644 --- a/core/services/compfs/Cargo.toml +++ b/core/services/compfs/Cargo.toml @@ -37,7 +37,6 @@ compio = { version = "0.16.0", features = [ "polling", "dispatcher", ] } -ctor = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/compfs/src/lib.rs b/core/services/compfs/src/lib.rs index afa7a90b7..35a64481b 100644 --- a/core/services/compfs/src/lib.rs +++ b/core/services/compfs/src/lib.rs @@ -32,8 +32,3 @@ pub use config::CompfsConfig; /// Default scheme for compfs service. pub const COMPFS_SCHEME: &str = "compfs"; - -#[ctor::ctor] -fn register_compfs_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Compfs>(COMPFS_SCHEME); -} diff --git a/core/services/cos/Cargo.toml b/core/services/cos/Cargo.toml index 62b5eeb7d..d58d0f71b 100644 --- a/core/services/cos/Cargo.toml +++ b/core/services/cos/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/cos/src/lib.rs b/core/services/cos/src/lib.rs index 754899b89..d4c22e003 100644 --- a/core/services/cos/src/lib.rs +++ b/core/services/cos/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for cos service. pub const COS_SCHEME: &str = "cos"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -30,8 +28,3 @@ mod writer; pub use backend::CosBuilder as Cos; pub use config::CosConfig; - -#[ctor::ctor] -fn register_cos_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Cos>(COS_SCHEME); -} diff --git a/core/services/d1/Cargo.toml b/core/services/d1/Cargo.toml index 27d80cdac..75157a94c 100644 --- a/core/services/d1/Cargo.toml +++ b/core/services/d1/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/d1/src/lib.rs b/core/services/d1/src/lib.rs index 4f76f198c..eaec2749a 100644 --- a/core/services/d1/src/lib.rs +++ b/core/services/d1/src/lib.rs @@ -32,8 +32,3 @@ pub use config::D1Config; /// Default scheme for d1 service. pub const D1_SCHEME: &str = "d1"; - -#[ctor::ctor] -fn register_d1_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<D1>(D1_SCHEME); -} diff --git a/core/services/dashmap/Cargo.toml b/core/services/dashmap/Cargo.toml index 750437969..8382650d4 100644 --- a/core/services/dashmap/Cargo.toml +++ b/core/services/dashmap/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } dashmap = "6" log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/dashmap/src/lib.rs b/core/services/dashmap/src/lib.rs index c3f609b30..b432bec80 100644 --- a/core/services/dashmap/src/lib.rs +++ b/core/services/dashmap/src/lib.rs @@ -32,8 +32,3 @@ pub use config::DashmapConfig; /// Default scheme for dashmap service. pub const DASHMAP_SCHEME: &str = "dashmap"; - -#[ctor::ctor] -fn register_dashmap_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Dashmap>(DASHMAP_SCHEME); -} diff --git a/core/services/dbfs/Cargo.toml b/core/services/dbfs/Cargo.toml index b56bb2d5e..4d122e5e6 100644 --- a/core/services/dbfs/Cargo.toml +++ b/core/services/dbfs/Cargo.toml @@ -33,7 +33,6 @@ all-features = true [dependencies] base64 = { workspace = true } bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/dbfs/src/lib.rs b/core/services/dbfs/src/lib.rs index a0dc4ae99..194b2b29c 100644 --- a/core/services/dbfs/src/lib.rs +++ b/core/services/dbfs/src/lib.rs @@ -33,8 +33,3 @@ pub use config::DbfsConfig; /// Default scheme for dbfs service. pub const DBFS_SCHEME: &str = "dbfs"; - -#[ctor::ctor] -fn register_dbfs_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Dbfs>(DBFS_SCHEME); -} diff --git a/core/services/dropbox/Cargo.toml b/core/services/dropbox/Cargo.toml index 8952013bd..465109f69 100644 --- a/core/services/dropbox/Cargo.toml +++ b/core/services/dropbox/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } mea = "0.5.1" opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/dropbox/src/lib.rs b/core/services/dropbox/src/lib.rs index 65d32f249..f85f953c8 100644 --- a/core/services/dropbox/src/lib.rs +++ b/core/services/dropbox/src/lib.rs @@ -34,8 +34,3 @@ pub use config::DropboxConfig; /// Default scheme for dropbox service. pub const DROPBOX_SCHEME: &str = "dropbox"; - -#[ctor::ctor] -fn register_dropbox_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Dropbox>(DROPBOX_SCHEME); -} diff --git a/core/services/etcd/Cargo.toml b/core/services/etcd/Cargo.toml index 0893c3080..78686a16b 100644 --- a/core/services/etcd/Cargo.toml +++ b/core/services/etcd/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } etcd-client = { version = "0.17", features = ["tls"] } fastpool = "1.0.2" opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/etcd/src/lib.rs b/core/services/etcd/src/lib.rs index b3dfafbc3..c1104f9f5 100644 --- a/core/services/etcd/src/lib.rs +++ b/core/services/etcd/src/lib.rs @@ -33,8 +33,3 @@ pub use config::EtcdConfig; /// Default scheme for etcd service. pub const ETCD_SCHEME: &str = "etcd"; - -#[ctor::ctor] -fn register_etcd_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Etcd>(ETCD_SCHEME); -} diff --git a/core/services/foundationdb/Cargo.toml b/core/services/foundationdb/Cargo.toml index dd4982506..b8693b390 100644 --- a/core/services/foundationdb/Cargo.toml +++ b/core/services/foundationdb/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } foundationdb = { version = "0.9.0", features = [ "embedded-fdb-include", "fdb-7_3", diff --git a/core/services/foundationdb/src/lib.rs b/core/services/foundationdb/src/lib.rs index d544919e9..7881b02fd 100644 --- a/core/services/foundationdb/src/lib.rs +++ b/core/services/foundationdb/src/lib.rs @@ -31,8 +31,3 @@ pub use config::FoundationdbConfig; /// Default scheme for foundationdb service. pub const FOUNDATIONDB_SCHEME: &str = "foundationdb"; - -#[ctor::ctor] -fn register_foundationdb_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Foundationdb>(FOUNDATIONDB_SCHEME); -} diff --git a/core/services/fs/Cargo.toml b/core/services/fs/Cargo.toml index ce886b32d..3aab5a973 100644 --- a/core/services/fs/Cargo.toml +++ b/core/services/fs/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false, features = [ "internal-tokio-rt", diff --git a/core/services/fs/src/lib.rs b/core/services/fs/src/lib.rs index 2867b4923..d3881b566 100644 --- a/core/services/fs/src/lib.rs +++ b/core/services/fs/src/lib.rs @@ -35,10 +35,3 @@ pub use config::FsConfig; pub const FS_SCHEME: &str = "fs"; /// Alias scheme for fs service that follows the standard URI scheme. pub const FILE_SCHEME: &str = "file"; - -#[ctor::ctor] -fn register_fs_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Fs>(FS_SCHEME); - // Register "file" as an alias for "fs" to support standard file:// URIs - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Fs>(FILE_SCHEME); -} diff --git a/core/services/ftp/Cargo.toml b/core/services/ftp/Cargo.toml index f7c5ac4ab..50e1f019c 100644 --- a/core/services/ftp/Cargo.toml +++ b/core/services/ftp/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } fastpool = "1.0.2" futures = { workspace = true, features = ["std", "async-await"] } futures-rustls = "0.26.0" diff --git a/core/services/ftp/src/lib.rs b/core/services/ftp/src/lib.rs index c812d83dc..9d8047b0c 100644 --- a/core/services/ftp/src/lib.rs +++ b/core/services/ftp/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for ftp service. pub const FTP_SCHEME: &str = "ftp"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -31,8 +29,3 @@ mod writer; pub use backend::FtpBuilder as Ftp; pub use config::FtpConfig; - -#[ctor::ctor] -fn register_ftp_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Ftp>(FTP_SCHEME); -} diff --git a/core/services/gcs/Cargo.toml b/core/services/gcs/Cargo.toml index 5622ade24..45117664d 100644 --- a/core/services/gcs/Cargo.toml +++ b/core/services/gcs/Cargo.toml @@ -33,7 +33,6 @@ all-features = true [dependencies] backon = "1.6" bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/gcs/src/lib.rs b/core/services/gcs/src/lib.rs index 9d9b3e80d..f2813e69d 100644 --- a/core/services/gcs/src/lib.rs +++ b/core/services/gcs/src/lib.rs @@ -33,8 +33,3 @@ pub use config::GcsConfig; /// Default scheme for gcs service. pub const GCS_SCHEME: &str = "gcs"; - -#[ctor::ctor] -fn register_gcs_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Gcs>(GCS_SCHEME); -} diff --git a/core/services/gdrive/Cargo.toml b/core/services/gdrive/Cargo.toml index 3cfc6a382..d10b9bcbf 100644 --- a/core/services/gdrive/Cargo.toml +++ b/core/services/gdrive/Cargo.toml @@ -36,7 +36,6 @@ opendal-core = { path = "../../core", version = "0.55.0", default-features = fal ] } bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } mea = "0.5.1" diff --git a/core/services/gdrive/src/lib.rs b/core/services/gdrive/src/lib.rs index 051a80020..11d4cb609 100644 --- a/core/services/gdrive/src/lib.rs +++ b/core/services/gdrive/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for gdrive service. pub const GDRIVE_SCHEME: &str = "gdrive"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod builder; mod config; @@ -31,8 +29,3 @@ mod writer; pub use builder::GdriveBuilder as Gdrive; pub use config::GdriveConfig; - -#[ctor::ctor] -fn register_gdrive_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Gdrive>(GDRIVE_SCHEME); -} diff --git a/core/services/ghac/Cargo.toml b/core/services/ghac/Cargo.toml index f11196ce3..40a6417ae 100644 --- a/core/services/ghac/Cargo.toml +++ b/core/services/ghac/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } ghac = { version = "0.2.0", default-features = false } http = { workspace = true } log = { workspace = true } diff --git a/core/services/ghac/src/lib.rs b/core/services/ghac/src/lib.rs index c1981b075..f7e65f313 100644 --- a/core/services/ghac/src/lib.rs +++ b/core/services/ghac/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for ghac service. pub const GHAC_SCHEME: &str = "ghac"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -28,8 +26,3 @@ mod writer; pub use backend::GhacBuilder as Ghac; pub use config::GhacConfig; - -#[ctor::ctor] -fn register_ghac_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Ghac>(GHAC_SCHEME); -} diff --git a/core/services/github/Cargo.toml b/core/services/github/Cargo.toml index 515bfa4a1..27f45df45 100644 --- a/core/services/github/Cargo.toml +++ b/core/services/github/Cargo.toml @@ -33,7 +33,6 @@ all-features = true [dependencies] base64 = { workspace = true } bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/github/src/lib.rs b/core/services/github/src/lib.rs index 7297081cc..4852744f0 100644 --- a/core/services/github/src/lib.rs +++ b/core/services/github/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for github service. pub const GITHUB_SCHEME: &str = "github"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -30,8 +28,3 @@ mod writer; pub use backend::GithubBuilder as Github; pub use config::GithubConfig; - -#[ctor::ctor] -fn register_github_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Github>(GITHUB_SCHEME); -} diff --git a/core/services/github/src/mod.rs b/core/services/github/src/mod.rs index 9cb8c0abd..bfe899a63 100644 --- a/core/services/github/src/mod.rs +++ b/core/services/github/src/mod.rs @@ -18,8 +18,6 @@ /// Default scheme for github service. pub const GITHUB_SCHEME: &str = "github"; -use crate::types::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -31,7 +29,3 @@ mod writer; pub use backend::GithubBuilder as Github; pub use config::GithubConfig; -#[ctor::ctor] -fn register_github_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Github>(GITHUB_SCHEME); -} diff --git a/core/services/gridfs/Cargo.toml b/core/services/gridfs/Cargo.toml index 12a704bbe..64a6ae644 100644 --- a/core/services/gridfs/Cargo.toml +++ b/core/services/gridfs/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } futures = { workspace = true } mea = "0.5.1" mongodb = "3.3.0" diff --git a/core/services/gridfs/src/lib.rs b/core/services/gridfs/src/lib.rs index fda56982b..a3d81107b 100644 --- a/core/services/gridfs/src/lib.rs +++ b/core/services/gridfs/src/lib.rs @@ -31,8 +31,3 @@ pub use config::GridfsConfig; /// Default scheme for gridfs service. pub const GRIDFS_SCHEME: &str = "gridfs"; - -#[ctor::ctor] -fn register_gridfs_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Gridfs>(GRIDFS_SCHEME); -} diff --git a/core/services/hdfs-native/Cargo.toml b/core/services/hdfs-native/Cargo.toml index 5cab5303d..7997882f6 100644 --- a/core/services/hdfs-native/Cargo.toml +++ b/core/services/hdfs-native/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } futures = { workspace = true } hdfs-native = { version = "0.13" } log = { workspace = true } diff --git a/core/services/hdfs-native/src/lib.rs b/core/services/hdfs-native/src/lib.rs index 1f8b77e36..81f33cda7 100644 --- a/core/services/hdfs-native/src/lib.rs +++ b/core/services/hdfs-native/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for hdfs-native service. pub const HDFS_NATIVE_SCHEME: &str = "hdfs-native"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -31,8 +29,3 @@ mod writer; pub use backend::HdfsNativeBuilder as HdfsNative; pub use config::HdfsNativeConfig; - -#[ctor::ctor] -fn register_hdfs_native_service() { - DEFAULT_OPERATOR_REGISTRY.register::<HdfsNative>(HDFS_NATIVE_SCHEME); -} diff --git a/core/services/hdfs/Cargo.toml b/core/services/hdfs/Cargo.toml index 5e615429f..bdb050304 100644 --- a/core/services/hdfs/Cargo.toml +++ b/core/services/hdfs/Cargo.toml @@ -34,7 +34,6 @@ all-features = true opendal-core = { path = "../../core", version = "0.55.0", default-features = false } bytes = { workspace = true } -ctor = { workspace = true } futures = { workspace = true } hdrs = { version = "0.3.2", features = ["async_file"] } log = { workspace = true } diff --git a/core/services/hdfs/src/lib.rs b/core/services/hdfs/src/lib.rs index 24d852a91..7b0f5fd85 100644 --- a/core/services/hdfs/src/lib.rs +++ b/core/services/hdfs/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for hdfs service. pub const HDFS_SCHEME: &str = "hdfs"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -30,8 +28,3 @@ mod writer; pub use backend::HdfsBuilder as Hdfs; pub use config::HdfsConfig; - -#[ctor::ctor] -fn register_hdfs_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Hdfs>(HDFS_SCHEME); -} diff --git a/core/services/http/Cargo.toml b/core/services/http/Cargo.toml index 8365d2b6c..97776bf00 100644 --- a/core/services/http/Cargo.toml +++ b/core/services/http/Cargo.toml @@ -27,7 +27,6 @@ version = "0.55.0" all-features = true [dependencies] -ctor = "0.6" http = "1.1" log = "0.4" opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/http/src/lib.rs b/core/services/http/src/lib.rs index f13cc8652..c986c54ef 100644 --- a/core/services/http/src/lib.rs +++ b/core/services/http/src/lib.rs @@ -29,8 +29,3 @@ pub use config::HttpConfig; /// Default scheme for http service. pub const HTTP_SCHEME: &str = "http"; - -#[ctor::ctor] -fn register_http_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Http>(HTTP_SCHEME); -} diff --git a/core/services/huggingface/Cargo.toml b/core/services/huggingface/Cargo.toml index e6d6c1a84..3bbcf1401 100644 --- a/core/services/huggingface/Cargo.toml +++ b/core/services/huggingface/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/huggingface/src/lib.rs b/core/services/huggingface/src/lib.rs index 31d53239c..68b9d09a3 100644 --- a/core/services/huggingface/src/lib.rs +++ b/core/services/huggingface/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for huggingface service. pub const HUGGINGFACE_SCHEME: &str = "huggingface"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -28,8 +26,3 @@ mod lister; pub use backend::HuggingfaceBuilder as Huggingface; pub use config::HuggingfaceConfig; - -#[ctor::ctor] -fn register_huggingface_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Huggingface>(HUGGINGFACE_SCHEME); -} diff --git a/core/services/ipfs/Cargo.toml b/core/services/ipfs/Cargo.toml index 9d10c69f4..e82fe862a 100644 --- a/core/services/ipfs/Cargo.toml +++ b/core/services/ipfs/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/ipfs/src/lib.rs b/core/services/ipfs/src/lib.rs index 758545ae5..0f2a17170 100644 --- a/core/services/ipfs/src/lib.rs +++ b/core/services/ipfs/src/lib.rs @@ -30,8 +30,3 @@ pub use config::IpfsConfig; /// Default scheme for ipfs service. pub const IPFS_SCHEME: &str = "ipfs"; - -#[ctor::ctor] -fn register_ipfs_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Ipfs>(IPFS_SCHEME); -} diff --git a/core/services/ipmfs/Cargo.toml b/core/services/ipmfs/Cargo.toml index d07c81c8c..6a943d12f 100644 --- a/core/services/ipmfs/Cargo.toml +++ b/core/services/ipmfs/Cargo.toml @@ -34,7 +34,6 @@ all-features = true opendal-core = { path = "../../core", version = "0.55.0", default-features = false } bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/ipmfs/src/lib.rs b/core/services/ipmfs/src/lib.rs index 62739595c..b1ae29161 100644 --- a/core/services/ipmfs/src/lib.rs +++ b/core/services/ipmfs/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for ipmfs service. pub const IPMFS_SCHEME: &str = "ipmfs"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod builder; mod config; @@ -31,8 +29,3 @@ mod writer; pub use builder::IpmfsBuilder as Ipmfs; pub use config::IpmfsConfig; - -#[ctor::ctor] -fn register_ipmfs_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Ipmfs>(IPMFS_SCHEME); -} diff --git a/core/services/koofr/Cargo.toml b/core/services/koofr/Cargo.toml index 12d5119f9..8eb0a6285 100644 --- a/core/services/koofr/Cargo.toml +++ b/core/services/koofr/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } mea = "0.5.1" diff --git a/core/services/koofr/src/lib.rs b/core/services/koofr/src/lib.rs index 163181ac1..eabacd782 100644 --- a/core/services/koofr/src/lib.rs +++ b/core/services/koofr/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for koofr service. pub const KOOFR_SCHEME: &str = "koofr"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -30,8 +28,3 @@ mod writer; pub use backend::KoofrBuilder as Koofr; pub use config::KoofrConfig; - -#[ctor::ctor] -fn register_koofr_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Koofr>(KOOFR_SCHEME); -} diff --git a/core/services/lakefs/Cargo.toml b/core/services/lakefs/Cargo.toml index ce63dce93..a8bc15478 100644 --- a/core/services/lakefs/Cargo.toml +++ b/core/services/lakefs/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/lakefs/src/lib.rs b/core/services/lakefs/src/lib.rs index b9e0076f8..bdb59ca10 100644 --- a/core/services/lakefs/src/lib.rs +++ b/core/services/lakefs/src/lib.rs @@ -33,8 +33,3 @@ pub use config::LakefsConfig; /// Default scheme for lakefs service. pub const LAKEFS_SCHEME: &str = "lakefs"; - -#[ctor::ctor] -fn register_lakefs_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Lakefs>(LAKEFS_SCHEME); -} diff --git a/core/services/memcached/Cargo.toml b/core/services/memcached/Cargo.toml index a9ddf394d..fa8ea87aa 100644 --- a/core/services/memcached/Cargo.toml +++ b/core/services/memcached/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } fastpool = "1.0.2" http = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/memcached/src/lib.rs b/core/services/memcached/src/lib.rs index 6555ef270..511c0b0dd 100644 --- a/core/services/memcached/src/lib.rs +++ b/core/services/memcached/src/lib.rs @@ -32,8 +32,3 @@ pub use config::MemcachedConfig; /// Default scheme for memcached service. pub const MEMCACHED_SCHEME: &str = "memcached"; - -#[ctor::ctor] -fn register_memcached_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Memcached>(MEMCACHED_SCHEME); -} diff --git a/core/services/mini_moka/Cargo.toml b/core/services/mini_moka/Cargo.toml index 24483bdb4..b7fab46f7 100644 --- a/core/services/mini_moka/Cargo.toml +++ b/core/services/mini_moka/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } log = { workspace = true } mini-moka = "0.10" opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/mini_moka/src/lib.rs b/core/services/mini_moka/src/lib.rs index 322009c2f..08b9513b5 100644 --- a/core/services/mini_moka/src/lib.rs +++ b/core/services/mini_moka/src/lib.rs @@ -32,8 +32,3 @@ pub use config::MiniMokaConfig; /// Default scheme for mini-moka service. pub const MINI_MOKA_SCHEME: &str = "mini-moka"; - -#[ctor::ctor] -fn register_minimoka_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<MiniMoka>(MINI_MOKA_SCHEME); -} diff --git a/core/services/moka/Cargo.toml b/core/services/moka/Cargo.toml index 6b9aaa1ed..9b00374f6 100644 --- a/core/services/moka/Cargo.toml +++ b/core/services/moka/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } log = { workspace = true } moka = { version = "0.12", features = ["future", "sync"] } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/moka/src/lib.rs b/core/services/moka/src/lib.rs index 9b9e70215..f638dd0b7 100644 --- a/core/services/moka/src/lib.rs +++ b/core/services/moka/src/lib.rs @@ -33,8 +33,3 @@ pub use core::MokaValue; /// Default scheme for moka service. pub const MOKA_SCHEME: &str = "moka"; - -#[ctor::ctor] -fn register_moka_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Moka>(MOKA_SCHEME); -} diff --git a/core/services/mongodb/Cargo.toml b/core/services/mongodb/Cargo.toml index 5c114c83b..d8fd6794e 100644 --- a/core/services/mongodb/Cargo.toml +++ b/core/services/mongodb/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } mea = "0.5.1" mongodb = { version = "3.3.0" } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/mongodb/src/lib.rs b/core/services/mongodb/src/lib.rs index c9611b1df..a2a6b7e7e 100644 --- a/core/services/mongodb/src/lib.rs +++ b/core/services/mongodb/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for mongodb service. pub const MONGODB_SCHEME: &str = "mongodb"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -28,8 +26,3 @@ mod writer; pub use backend::MongodbBuilder as Mongodb; pub use config::MongodbConfig; - -#[ctor::ctor] -fn register_mongodb_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Mongodb>(MONGODB_SCHEME); -} diff --git a/core/services/monoiofs/Cargo.toml b/core/services/monoiofs/Cargo.toml index 846c647c6..676fb4466 100644 --- a/core/services/monoiofs/Cargo.toml +++ b/core/services/monoiofs/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } flume = "0.11" futures = { workspace = true, features = ["std", "async-await"] } monoio = { version = "0.2.4", features = [ diff --git a/core/services/monoiofs/src/lib.rs b/core/services/monoiofs/src/lib.rs index 773ce1f88..f5bae993b 100644 --- a/core/services/monoiofs/src/lib.rs +++ b/core/services/monoiofs/src/lib.rs @@ -32,8 +32,3 @@ pub use config::MonoiofsConfig; /// Default scheme for monoiofs service. pub const MONOIOFS_SCHEME: &str = "monoiofs"; - -#[ctor::ctor] -fn register_monoiofs_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Monoiofs>(MONOIOFS_SCHEME); -} diff --git a/core/services/mysql/Cargo.toml b/core/services/mysql/Cargo.toml index d5a249a3e..01d616ba3 100644 --- a/core/services/mysql/Cargo.toml +++ b/core/services/mysql/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } mea = "0.5.1" opendal-core = { path = "../../core", version = "0.55.0", default-features = false } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/mysql/src/lib.rs b/core/services/mysql/src/lib.rs index c16bcdc06..5ccf41199 100644 --- a/core/services/mysql/src/lib.rs +++ b/core/services/mysql/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for mysql service. pub const MYSQL_SCHEME: &str = "mysql"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -28,8 +26,3 @@ mod writer; pub use backend::MysqlBuilder as Mysql; pub use config::MysqlConfig; - -#[ctor::ctor] -fn register_mysql_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Mysql>(MYSQL_SCHEME); -} diff --git a/core/services/obs/Cargo.toml b/core/services/obs/Cargo.toml index b6f805738..3bd2582c0 100644 --- a/core/services/obs/Cargo.toml +++ b/core/services/obs/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/obs/src/lib.rs b/core/services/obs/src/lib.rs index aa60f8e09..417ef04ae 100644 --- a/core/services/obs/src/lib.rs +++ b/core/services/obs/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for obs service. pub const OBS_SCHEME: &str = "obs"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -30,8 +28,3 @@ mod writer; pub use backend::ObsBuilder as Obs; pub use config::ObsConfig; - -#[ctor::ctor] -fn register_obs_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Obs>(OBS_SCHEME); -} diff --git a/core/services/onedrive/Cargo.toml b/core/services/onedrive/Cargo.toml index d0396921a..69a92d203 100644 --- a/core/services/onedrive/Cargo.toml +++ b/core/services/onedrive/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } mea = { version = "0.5.1" } diff --git a/core/services/onedrive/src/lib.rs b/core/services/onedrive/src/lib.rs index 3493d2478..ffe3ea684 100644 --- a/core/services/onedrive/src/lib.rs +++ b/core/services/onedrive/src/lib.rs @@ -34,8 +34,3 @@ pub use config::OnedriveConfig; /// Default scheme for onedrive service. pub const ONEDRIVE_SCHEME: &str = "onedrive"; - -#[ctor::ctor] -fn register_onedrive_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Onedrive>(ONEDRIVE_SCHEME); -} diff --git a/core/services/opfs/Cargo.toml b/core/services/opfs/Cargo.toml index fc9107ced..b82b11271 100644 --- a/core/services/opfs/Cargo.toml +++ b/core/services/opfs/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [target.'cfg(target_arch = "wasm32")'.dependencies] -ctor = { workspace = true } js-sys = "0.3.77" opendal-core = { path = "../../core", version = "0.55.0", default-features = false } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/opfs/src/lib.rs b/core/services/opfs/src/lib.rs index 98fb8bcba..4d3c93f0e 100644 --- a/core/services/opfs/src/lib.rs +++ b/core/services/opfs/src/lib.rs @@ -20,8 +20,6 @@ /// Default scheme for opfs service. pub const OPFS_SCHEME: &str = "opfs"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -30,8 +28,3 @@ mod utils; pub use backend::OpfsBuilder as Opfs; pub use config::OpfsConfig; - -#[ctor::ctor] -fn register_opfs_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Opfs>(OPFS_SCHEME); -} diff --git a/core/services/oss/Cargo.toml b/core/services/oss/Cargo.toml index 6d392824b..47eff2941 100644 --- a/core/services/oss/Cargo.toml +++ b/core/services/oss/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/oss/src/lib.rs b/core/services/oss/src/lib.rs index a995973d2..055a7c37c 100644 --- a/core/services/oss/src/lib.rs +++ b/core/services/oss/src/lib.rs @@ -32,8 +32,3 @@ pub use config::OssConfig; /// Default scheme for oss service. pub const OSS_SCHEME: &str = "oss"; - -#[ctor::ctor] -fn register_oss_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Oss>(OSS_SCHEME); -} diff --git a/core/services/pcloud/Cargo.toml b/core/services/pcloud/Cargo.toml index e45576add..874317e53 100644 --- a/core/services/pcloud/Cargo.toml +++ b/core/services/pcloud/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/pcloud/src/lib.rs b/core/services/pcloud/src/lib.rs index d8ce9e499..079fe9527 100644 --- a/core/services/pcloud/src/lib.rs +++ b/core/services/pcloud/src/lib.rs @@ -32,8 +32,3 @@ pub use config::PcloudConfig; /// Default scheme for pcloud service. pub const PCLOUD_SCHEME: &str = "pcloud"; - -#[ctor::ctor] -fn register_pcloud_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Pcloud>(PCLOUD_SCHEME); -} diff --git a/core/services/persy/Cargo.toml b/core/services/persy/Cargo.toml index c87806d3e..2f592c80a 100644 --- a/core/services/persy/Cargo.toml +++ b/core/services/persy/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } persy = "1.7.1" serde = { workspace = true, features = ["derive"] } diff --git a/core/services/persy/src/lib.rs b/core/services/persy/src/lib.rs index 2c3993f84..34d9a84eb 100644 --- a/core/services/persy/src/lib.rs +++ b/core/services/persy/src/lib.rs @@ -30,8 +30,3 @@ pub use config::PersyConfig; /// Default scheme for persy service. pub const PERSY_SCHEME: &str = "persy"; - -#[ctor::ctor] -fn register_persy_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Persy>(PERSY_SCHEME); -} diff --git a/core/services/postgresql/Cargo.toml b/core/services/postgresql/Cargo.toml index 5c26a8af3..acbec9c95 100644 --- a/core/services/postgresql/Cargo.toml +++ b/core/services/postgresql/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } mea = "0.5.1" opendal-core = { path = "../../core", version = "0.55.0", default-features = false } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/postgresql/src/lib.rs b/core/services/postgresql/src/lib.rs index 0d2d27635..ca2fdc086 100644 --- a/core/services/postgresql/src/lib.rs +++ b/core/services/postgresql/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for postgresql service. pub const POSTGRESQL_SCHEME: &str = "postgresql"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -28,8 +26,3 @@ mod writer; pub use backend::PostgresqlBuilder as Postgresql; pub use config::PostgresqlConfig; - -#[ctor::ctor] -fn register_postgresql_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Postgresql>(POSTGRESQL_SCHEME); -} diff --git a/core/services/redb/Cargo.toml b/core/services/redb/Cargo.toml index c4a2d4fc2..67218c17b 100644 --- a/core/services/redb/Cargo.toml +++ b/core/services/redb/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } redb = { version = "2" } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/redb/src/lib.rs b/core/services/redb/src/lib.rs index 2b7ffb075..e9238071b 100644 --- a/core/services/redb/src/lib.rs +++ b/core/services/redb/src/lib.rs @@ -30,8 +30,3 @@ pub use config::RedbConfig; /// Default scheme for redb service. pub const REDB_SCHEME: &str = "redb"; - -#[ctor::ctor] -fn register_redb_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Redb>(REDB_SCHEME); -} diff --git a/core/services/redis/Cargo.toml b/core/services/redis/Cargo.toml index e28c9ba67..5f3e43a06 100644 --- a/core/services/redis/Cargo.toml +++ b/core/services/redis/Cargo.toml @@ -37,7 +37,6 @@ rustls = ["redis/tokio-rustls-comp"] [dependencies] bytes = { workspace = true } -ctor = { workspace = true } fastpool = "1.0.2" http = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/redis/src/lib.rs b/core/services/redis/src/lib.rs index a2f99e58b..2e705c0fa 100644 --- a/core/services/redis/src/lib.rs +++ b/core/services/redis/src/lib.rs @@ -31,8 +31,3 @@ pub use config::RedisConfig; /// Default scheme for redis service. pub const REDIS_SCHEME: &str = "redis"; - -#[ctor::ctor] -fn register_redis_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Redis>(REDIS_SCHEME); -} diff --git a/core/services/rocksdb/Cargo.toml b/core/services/rocksdb/Cargo.toml index 55433205a..3041ec509 100644 --- a/core/services/rocksdb/Cargo.toml +++ b/core/services/rocksdb/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } rocksdb = { version = "0.21.0", default-features = false } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/rocksdb/src/lib.rs b/core/services/rocksdb/src/lib.rs index 344a5f310..ca48c9208 100644 --- a/core/services/rocksdb/src/lib.rs +++ b/core/services/rocksdb/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for rocksdb service. pub const ROCKSDB_SCHEME: &str = "rocksdb"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -29,8 +27,3 @@ mod writer; pub use crate::backend::RocksdbBuilder as Rocksdb; pub use crate::config::RocksdbConfig; - -#[ctor::ctor] -fn register_rocksdb_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Rocksdb>(ROCKSDB_SCHEME); -} diff --git a/core/services/s3/Cargo.toml b/core/services/s3/Cargo.toml index 55af551c9..f13928ab1 100644 --- a/core/services/s3/Cargo.toml +++ b/core/services/s3/Cargo.toml @@ -34,7 +34,6 @@ all-features = true base64 = { workspace = true } bytes = { workspace = true } crc32c = "0.6.6" -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } md-5 = "0.10" diff --git a/core/services/s3/src/lib.rs b/core/services/s3/src/lib.rs index 57b39c419..bb75df077 100644 --- a/core/services/s3/src/lib.rs +++ b/core/services/s3/src/lib.rs @@ -32,8 +32,3 @@ pub use config::S3Config; /// Default scheme for s3 service. pub const S3_SCHEME: &str = "s3"; - -#[ctor::ctor] -fn register_s3_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<S3>(S3_SCHEME); -} diff --git a/core/services/s3/src/mod.rs b/core/services/s3/src/mod.rs index 5407b1653..69d3819b3 100644 --- a/core/services/s3/src/mod.rs +++ b/core/services/s3/src/mod.rs @@ -18,8 +18,6 @@ /// Default scheme for s3 service. pub const S3_SCHEME: &str = "s3"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -31,7 +29,3 @@ mod writer; pub use backend::S3Builder as S3; pub use config::S3Config; -#[ctor::ctor] -fn register_s3_service() { - DEFAULT_OPERATOR_REGISTRY.register::<S3>(S3_SCHEME); -} diff --git a/core/services/seafile/Cargo.toml b/core/services/seafile/Cargo.toml index 834cca095..72309b55f 100644 --- a/core/services/seafile/Cargo.toml +++ b/core/services/seafile/Cargo.toml @@ -34,7 +34,6 @@ all-features = true opendal-core = { path = "../../core", version = "0.55.0", default-features = false } bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } mea = "0.5.1" diff --git a/core/services/seafile/src/lib.rs b/core/services/seafile/src/lib.rs index 2efc50089..d658fff41 100644 --- a/core/services/seafile/src/lib.rs +++ b/core/services/seafile/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for seafile service. pub const SEAFILE_SCHEME: &str = "seafile"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -30,8 +28,3 @@ mod writer; pub use backend::SeafileBuilder as Seafile; pub use config::SeafileConfig; - -#[ctor::ctor] -fn register_seafile_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Seafile>(SEAFILE_SCHEME); -} diff --git a/core/services/sftp/Cargo.toml b/core/services/sftp/Cargo.toml index 5186394ef..98e3967eb 100644 --- a/core/services/sftp/Cargo.toml +++ b/core/services/sftp/Cargo.toml @@ -34,7 +34,6 @@ all-features = true opendal-core = { path = "../../core", version = "0.55.0", default-features = false } bytes = { workspace = true } -ctor = { workspace = true } fastpool = "1.0.2" futures = { workspace = true } log = { workspace = true } diff --git a/core/services/sftp/src/lib.rs b/core/services/sftp/src/lib.rs index 878be1956..52533b1c8 100644 --- a/core/services/sftp/src/lib.rs +++ b/core/services/sftp/src/lib.rs @@ -35,8 +35,3 @@ pub use config::SftpConfig; /// Default scheme for sftp service. pub const SFTP_SCHEME: &str = "sftp"; - -#[ctor::ctor] -fn register_sftp_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Sftp>(SFTP_SCHEME); -} diff --git a/core/services/sled/Cargo.toml b/core/services/sled/Cargo.toml index 12b3289e4..0b7e8e91b 100644 --- a/core/services/sled/Cargo.toml +++ b/core/services/sled/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } serde = { workspace = true, features = ["derive"] } sled = "0.34.7" diff --git a/core/services/sled/src/lib.rs b/core/services/sled/src/lib.rs index 91196be64..70f043b0e 100644 --- a/core/services/sled/src/lib.rs +++ b/core/services/sled/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for sled service. pub const SLED_SCHEME: &str = "sled"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -29,8 +27,3 @@ mod writer; pub use backend::SledBuilder as Sled; pub use config::SledConfig; - -#[ctor::ctor] -fn register_sled_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Sled>(SLED_SCHEME); -} diff --git a/core/services/sqlite/Cargo.toml b/core/services/sqlite/Cargo.toml index 3a7839080..9973ebd09 100644 --- a/core/services/sqlite/Cargo.toml +++ b/core/services/sqlite/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } mea = "0.5.1" opendal-core = { path = "../../core", version = "0.55.0", default-features = false } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/sqlite/src/lib.rs b/core/services/sqlite/src/lib.rs index 4178520d3..c498866e4 100644 --- a/core/services/sqlite/src/lib.rs +++ b/core/services/sqlite/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for sqlite service. pub const SQLITE_SCHEME: &str = "sqlite"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -28,8 +26,3 @@ mod writer; pub use backend::SqliteBuilder as Sqlite; pub use config::SqliteConfig; - -#[ctor::ctor] -fn register_sqlite_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Sqlite>(SQLITE_SCHEME); -} diff --git a/core/services/surrealdb/Cargo.toml b/core/services/surrealdb/Cargo.toml index 64b46e856..54a8d7980 100644 --- a/core/services/surrealdb/Cargo.toml +++ b/core/services/surrealdb/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } mea = "0.5.1" opendal-core = { path = "../../core", version = "0.55.0", default-features = false } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/surrealdb/src/lib.rs b/core/services/surrealdb/src/lib.rs index 0ea8ba131..e24c6f85d 100644 --- a/core/services/surrealdb/src/lib.rs +++ b/core/services/surrealdb/src/lib.rs @@ -30,8 +30,3 @@ pub use config::SurrealdbConfig; /// Default scheme for surrealdb service. pub const SURREALDB_SCHEME: &str = "surrealdb"; - -#[ctor::ctor] -fn register_surrealdb_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Surrealdb>(SURREALDB_SCHEME); -} diff --git a/core/services/swift/Cargo.toml b/core/services/swift/Cargo.toml index 508aaf4fd..eb2914e0b 100644 --- a/core/services/swift/Cargo.toml +++ b/core/services/swift/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/swift/src/lib.rs b/core/services/swift/src/lib.rs index 1d6d04025..79f6b284b 100644 --- a/core/services/swift/src/lib.rs +++ b/core/services/swift/src/lib.rs @@ -20,8 +20,6 @@ #![cfg_attr(docsrs, feature(doc_cfg))] #![deny(missing_docs)] -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -35,8 +33,3 @@ pub use config::SwiftConfig; /// Default scheme for swift service. pub const SWIFT_SCHEME: &str = "swift"; - -#[ctor::ctor] -fn register_swift_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Swift>(SWIFT_SCHEME); -} diff --git a/core/services/tikv/Cargo.toml b/core/services/tikv/Cargo.toml index ca9dc6e64..a7f2dba4c 100644 --- a/core/services/tikv/Cargo.toml +++ b/core/services/tikv/Cargo.toml @@ -31,7 +31,6 @@ version = { workspace = true } all-features = true [dependencies] -ctor = { workspace = true } mea = "0.5.1" opendal-core = { path = "../../core", version = "0.55.0", default-features = false } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/tikv/src/lib.rs b/core/services/tikv/src/lib.rs index 4eeb536ef..639edf7bd 100644 --- a/core/services/tikv/src/lib.rs +++ b/core/services/tikv/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for tikv service. pub const TIKV_SCHEME: &str = "tikv"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -28,8 +26,3 @@ mod writer; pub use backend::TikvBuilder as Tikv; pub use config::TikvConfig; - -#[ctor::ctor] -fn register_tikv_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Tikv>(TIKV_SCHEME); -} diff --git a/core/services/upyun/Cargo.toml b/core/services/upyun/Cargo.toml index 1f64da4df..a9b97cc49 100644 --- a/core/services/upyun/Cargo.toml +++ b/core/services/upyun/Cargo.toml @@ -33,7 +33,6 @@ all-features = true [dependencies] base64 = { workspace = true } bytes = { workspace = true } -ctor = { workspace = true } hmac = "0.12.1" http = { workspace = true } log = { workspace = true } diff --git a/core/services/upyun/src/lib.rs b/core/services/upyun/src/lib.rs index 10359b9fd..0a7e0cc59 100644 --- a/core/services/upyun/src/lib.rs +++ b/core/services/upyun/src/lib.rs @@ -33,8 +33,3 @@ pub use config::UpyunConfig; /// Default scheme for upyun service. pub const UPYUN_SCHEME: &str = "upyun"; - -#[ctor::ctor] -fn register_upyun_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<Upyun>(UPYUN_SCHEME); -} diff --git a/core/services/vercel-artifacts/Cargo.toml b/core/services/vercel-artifacts/Cargo.toml index ac1c4f711..5098d1467 100644 --- a/core/services/vercel-artifacts/Cargo.toml +++ b/core/services/vercel-artifacts/Cargo.toml @@ -34,7 +34,6 @@ all-features = true opendal-core = { path = "../../core", version = "0.55.0", default-features = false } bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } serde = { workspace = true, features = ["derive"] } diff --git a/core/services/vercel-artifacts/src/lib.rs b/core/services/vercel-artifacts/src/lib.rs index ab15d005f..8a032e46f 100644 --- a/core/services/vercel-artifacts/src/lib.rs +++ b/core/services/vercel-artifacts/src/lib.rs @@ -20,8 +20,6 @@ /// Default scheme for vercel-artifacts service. pub const VERCEL_ARTIFACTS_SCHEME: &str = "vercel-artifacts"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod builder; mod config; @@ -31,8 +29,3 @@ mod writer; pub use builder::VercelArtifactsBuilder as VercelArtifacts; pub use config::VercelArtifactsConfig; - -#[ctor::ctor] -fn register_vercelartifacts_service() { - DEFAULT_OPERATOR_REGISTRY.register::<VercelArtifacts>(VERCEL_ARTIFACTS_SCHEME); -} diff --git a/core/services/vercel-blob/Cargo.toml b/core/services/vercel-blob/Cargo.toml index 375ee7e30..764e06073 100644 --- a/core/services/vercel-blob/Cargo.toml +++ b/core/services/vercel-blob/Cargo.toml @@ -32,7 +32,6 @@ all-features = true [dependencies] bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } opendal-core = { path = "../../core", version = "0.55.0", default-features = false } diff --git a/core/services/vercel-blob/src/lib.rs b/core/services/vercel-blob/src/lib.rs index 495297e0b..f989d5bf0 100644 --- a/core/services/vercel-blob/src/lib.rs +++ b/core/services/vercel-blob/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for vercel-blob service. pub const VERCEL_BLOB_SCHEME: &str = "vercel-blob"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -30,8 +28,3 @@ mod writer; pub use backend::VercelBlobBuilder as VercelBlob; pub use config::VercelBlobConfig; - -#[ctor::ctor] -fn register_vercelblob_service() { - DEFAULT_OPERATOR_REGISTRY.register::<VercelBlob>(VERCEL_BLOB_SCHEME); -} diff --git a/core/services/webdav/Cargo.toml b/core/services/webdav/Cargo.toml index f65588fcb..1cbcec067 100644 --- a/core/services/webdav/Cargo.toml +++ b/core/services/webdav/Cargo.toml @@ -33,7 +33,6 @@ all-features = true [dependencies] anyhow = { version = "1.0.100", features = ["std"] } bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } mea = "0.5.1" diff --git a/core/services/webdav/src/lib.rs b/core/services/webdav/src/lib.rs index 3949894c3..7e46b570c 100644 --- a/core/services/webdav/src/lib.rs +++ b/core/services/webdav/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for webdav service. pub const WEBDAV_SCHEME: &str = "webdav"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -30,8 +28,3 @@ mod writer; pub use backend::WebdavBuilder as Webdav; pub use config::WebdavConfig; - -#[ctor::ctor] -fn register_webdav_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Webdav>(WEBDAV_SCHEME); -} diff --git a/core/services/webhdfs/Cargo.toml b/core/services/webhdfs/Cargo.toml index 157d692d4..89c8a233a 100644 --- a/core/services/webhdfs/Cargo.toml +++ b/core/services/webhdfs/Cargo.toml @@ -33,7 +33,6 @@ all-features = true [dependencies] anyhow = { version = "1.0.100", features = ["std"] } bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } mea = "0.5.1" diff --git a/core/services/webhdfs/src/lib.rs b/core/services/webhdfs/src/lib.rs index 90fe4ba69..7e9c47125 100644 --- a/core/services/webhdfs/src/lib.rs +++ b/core/services/webhdfs/src/lib.rs @@ -18,8 +18,6 @@ /// Default scheme for webhdfs service. pub const WEBHDFS_SCHEME: &str = "webhdfs"; -use opendal_core::DEFAULT_OPERATOR_REGISTRY; - mod backend; mod config; mod core; @@ -31,8 +29,3 @@ mod writer; pub use backend::WebhdfsBuilder as Webhdfs; pub use config::WebhdfsConfig; - -#[ctor::ctor] -fn register_webhdfs_service() { - DEFAULT_OPERATOR_REGISTRY.register::<Webhdfs>(WEBHDFS_SCHEME); -} diff --git a/core/services/yandex-disk/Cargo.toml b/core/services/yandex-disk/Cargo.toml index 272e4758a..27f6c6b9e 100644 --- a/core/services/yandex-disk/Cargo.toml +++ b/core/services/yandex-disk/Cargo.toml @@ -34,7 +34,6 @@ all-features = true opendal-core = { path = "../../core", version = "0.55.0", default-features = false } bytes = { workspace = true } -ctor = { workspace = true } http = { workspace = true } log = { workspace = true } quick-xml = { workspace = true } diff --git a/core/services/yandex-disk/src/lib.rs b/core/services/yandex-disk/src/lib.rs index b79d4e885..b5c16b93d 100644 --- a/core/services/yandex-disk/src/lib.rs +++ b/core/services/yandex-disk/src/lib.rs @@ -32,8 +32,3 @@ pub use config::YandexDiskConfig; /// Default scheme for yandex-disk service. pub const YANDEX_DISK_SCHEME: &str = "yandex-disk"; - -#[ctor::ctor] -fn register_yandexdisk_service() { - opendal_core::DEFAULT_OPERATOR_REGISTRY.register::<YandexDisk>(YANDEX_DISK_SCHEME); -} diff --git a/core/src/lib.rs b/core/src/lib.rs index f45746d41..c948a38be 100644 --- a/core/src/lib.rs +++ b/core/src/lib.rs @@ -27,6 +27,166 @@ pub use opendal_core::*; #[cfg(feature = "tests")] pub use opendal_testkit as tests; +#[ctor::ctor] +fn register_default_operator_registry() { + let registry = &opendal_core::DEFAULT_OPERATOR_REGISTRY; + + #[cfg(feature = "services-memory")] + registry.register::<opendal_core::services::Memory>(opendal_core::services::MEMORY_SCHEME); + + #[cfg(feature = "services-aliyun-drive")] + registry.register::<opendal_service_aliyun_drive::AliyunDrive>( + opendal_service_aliyun_drive::ALIYUN_DRIVE_SCHEME, + ); + #[cfg(feature = "services-alluxio")] + registry.register::<opendal_service_alluxio::Alluxio>(opendal_service_alluxio::ALLUXIO_SCHEME); + #[cfg(feature = "services-azblob")] + registry.register::<opendal_service_azblob::Azblob>(opendal_service_azblob::AZBLOB_SCHEME); + #[cfg(feature = "services-azdls")] + registry.register::<opendal_service_azdls::Azdls>(opendal_service_azdls::AZDLS_SCHEME); + #[cfg(feature = "services-azfile")] + registry.register::<opendal_service_azfile::Azfile>(opendal_service_azfile::AZFILE_SCHEME); + #[cfg(feature = "services-b2")] + registry.register::<opendal_service_b2::B2>(opendal_service_b2::B2_SCHEME); + #[cfg(feature = "services-cacache")] + registry.register::<opendal_service_cacache::Cacache>(opendal_service_cacache::CACACHE_SCHEME); + #[cfg(feature = "services-cloudflare-kv")] + registry.register::<opendal_service_cloudflare_kv::CloudflareKv>( + opendal_service_cloudflare_kv::CLOUDFLARE_KV_SCHEME, + ); + #[cfg(feature = "services-compfs")] + registry.register::<opendal_service_compfs::Compfs>(opendal_service_compfs::COMPFS_SCHEME); + #[cfg(feature = "services-cos")] + registry.register::<opendal_service_cos::Cos>(opendal_service_cos::COS_SCHEME); + #[cfg(feature = "services-d1")] + registry.register::<opendal_service_d1::D1>(opendal_service_d1::D1_SCHEME); + #[cfg(feature = "services-dashmap")] + registry.register::<opendal_service_dashmap::Dashmap>(opendal_service_dashmap::DASHMAP_SCHEME); + #[cfg(feature = "services-dbfs")] + registry.register::<opendal_service_dbfs::Dbfs>(opendal_service_dbfs::DBFS_SCHEME); + #[cfg(feature = "services-dropbox")] + registry.register::<opendal_service_dropbox::Dropbox>(opendal_service_dropbox::DROPBOX_SCHEME); + #[cfg(feature = "services-etcd")] + registry.register::<opendal_service_etcd::Etcd>(opendal_service_etcd::ETCD_SCHEME); + #[cfg(feature = "services-foundationdb")] + registry.register::<opendal_service_foundationdb::Foundationdb>( + opendal_service_foundationdb::FOUNDATIONDB_SCHEME, + ); + #[cfg(feature = "services-fs")] + { + registry.register::<opendal_service_fs::Fs>(opendal_service_fs::FS_SCHEME); + registry.register::<opendal_service_fs::Fs>(opendal_service_fs::FILE_SCHEME); + } + #[cfg(feature = "services-ftp")] + registry.register::<opendal_service_ftp::Ftp>(opendal_service_ftp::FTP_SCHEME); + #[cfg(feature = "services-gcs")] + registry.register::<opendal_service_gcs::Gcs>(opendal_service_gcs::GCS_SCHEME); + #[cfg(feature = "services-gdrive")] + registry.register::<opendal_service_gdrive::Gdrive>(opendal_service_gdrive::GDRIVE_SCHEME); + #[cfg(feature = "services-ghac")] + registry.register::<opendal_service_ghac::Ghac>(opendal_service_ghac::GHAC_SCHEME); + #[cfg(feature = "services-github")] + registry.register::<opendal_service_github::Github>(opendal_service_github::GITHUB_SCHEME); + #[cfg(feature = "services-gridfs")] + registry.register::<opendal_service_gridfs::Gridfs>(opendal_service_gridfs::GRIDFS_SCHEME); + #[cfg(feature = "services-hdfs")] + registry.register::<opendal_service_hdfs::Hdfs>(opendal_service_hdfs::HDFS_SCHEME); + #[cfg(feature = "services-hdfs-native")] + registry.register::<opendal_service_hdfs_native::HdfsNative>( + opendal_service_hdfs_native::HDFS_NATIVE_SCHEME, + ); + #[cfg(feature = "services-http")] + registry.register::<opendal_service_http::Http>(opendal_service_http::HTTP_SCHEME); + #[cfg(feature = "services-huggingface")] + registry.register::<opendal_service_huggingface::Huggingface>( + opendal_service_huggingface::HUGGINGFACE_SCHEME, + ); + #[cfg(feature = "services-ipfs")] + registry.register::<opendal_service_ipfs::Ipfs>(opendal_service_ipfs::IPFS_SCHEME); + #[cfg(feature = "services-ipmfs")] + registry.register::<opendal_service_ipmfs::Ipmfs>(opendal_service_ipmfs::IPMFS_SCHEME); + #[cfg(feature = "services-koofr")] + registry.register::<opendal_service_koofr::Koofr>(opendal_service_koofr::KOOFR_SCHEME); + #[cfg(feature = "services-lakefs")] + registry.register::<opendal_service_lakefs::Lakefs>(opendal_service_lakefs::LAKEFS_SCHEME); + #[cfg(feature = "services-memcached")] + registry.register::<opendal_service_memcached::Memcached>( + opendal_service_memcached::MEMCACHED_SCHEME, + ); + #[cfg(feature = "services-mini-moka")] + registry.register::<opendal_service_mini_moka::MiniMoka>( + opendal_service_mini_moka::MINI_MOKA_SCHEME, + ); + #[cfg(feature = "services-moka")] + registry.register::<opendal_service_moka::Moka>(opendal_service_moka::MOKA_SCHEME); + #[cfg(feature = "services-mongodb")] + registry.register::<opendal_service_mongodb::Mongodb>(opendal_service_mongodb::MONGODB_SCHEME); + #[cfg(feature = "services-monoiofs")] + registry + .register::<opendal_service_monoiofs::Monoiofs>(opendal_service_monoiofs::MONOIOFS_SCHEME); + #[cfg(feature = "services-mysql")] + registry.register::<opendal_service_mysql::Mysql>(opendal_service_mysql::MYSQL_SCHEME); + #[cfg(feature = "services-obs")] + registry.register::<opendal_service_obs::Obs>(opendal_service_obs::OBS_SCHEME); + #[cfg(feature = "services-onedrive")] + registry + .register::<opendal_service_onedrive::Onedrive>(opendal_service_onedrive::ONEDRIVE_SCHEME); + #[cfg(all(target_arch = "wasm32", feature = "services-opfs"))] + registry.register::<opendal_service_opfs::Opfs>(opendal_service_opfs::OPFS_SCHEME); + #[cfg(feature = "services-oss")] + registry.register::<opendal_service_oss::Oss>(opendal_service_oss::OSS_SCHEME); + #[cfg(feature = "services-pcloud")] + registry.register::<opendal_service_pcloud::Pcloud>(opendal_service_pcloud::PCLOUD_SCHEME); + #[cfg(feature = "services-persy")] + registry.register::<opendal_service_persy::Persy>(opendal_service_persy::PERSY_SCHEME); + #[cfg(feature = "services-postgresql")] + registry.register::<opendal_service_postgresql::Postgresql>( + opendal_service_postgresql::POSTGRESQL_SCHEME, + ); + #[cfg(feature = "services-redb")] + registry.register::<opendal_service_redb::Redb>(opendal_service_redb::REDB_SCHEME); + #[cfg(any(feature = "services-redis", feature = "services-redis-native-tls"))] + registry.register::<opendal_service_redis::Redis>(opendal_service_redis::REDIS_SCHEME); + #[cfg(feature = "services-rocksdb")] + registry.register::<opendal_service_rocksdb::Rocksdb>(opendal_service_rocksdb::ROCKSDB_SCHEME); + #[cfg(feature = "services-s3")] + registry.register::<opendal_service_s3::S3>(opendal_service_s3::S3_SCHEME); + #[cfg(feature = "services-seafile")] + registry.register::<opendal_service_seafile::Seafile>(opendal_service_seafile::SEAFILE_SCHEME); + #[cfg(feature = "services-sftp")] + registry.register::<opendal_service_sftp::Sftp>(opendal_service_sftp::SFTP_SCHEME); + #[cfg(feature = "services-sled")] + registry.register::<opendal_service_sled::Sled>(opendal_service_sled::SLED_SCHEME); + #[cfg(feature = "services-sqlite")] + registry.register::<opendal_service_sqlite::Sqlite>(opendal_service_sqlite::SQLITE_SCHEME); + #[cfg(feature = "services-surrealdb")] + registry.register::<opendal_service_surrealdb::Surrealdb>( + opendal_service_surrealdb::SURREALDB_SCHEME, + ); + #[cfg(feature = "services-swift")] + registry.register::<opendal_service_swift::Swift>(opendal_service_swift::SWIFT_SCHEME); + #[cfg(feature = "services-tikv")] + registry.register::<opendal_service_tikv::Tikv>(opendal_service_tikv::TIKV_SCHEME); + #[cfg(feature = "services-upyun")] + registry.register::<opendal_service_upyun::Upyun>(opendal_service_upyun::UPYUN_SCHEME); + #[cfg(feature = "services-vercel-artifacts")] + registry.register::<opendal_service_vercel_artifacts::VercelArtifacts>( + opendal_service_vercel_artifacts::VERCEL_ARTIFACTS_SCHEME, + ); + #[cfg(feature = "services-vercel-blob")] + registry.register::<opendal_service_vercel_blob::VercelBlob>( + opendal_service_vercel_blob::VERCEL_BLOB_SCHEME, + ); + #[cfg(feature = "services-webdav")] + registry.register::<opendal_service_webdav::Webdav>(opendal_service_webdav::WEBDAV_SCHEME); + #[cfg(feature = "services-webhdfs")] + registry.register::<opendal_service_webhdfs::Webhdfs>(opendal_service_webhdfs::WEBHDFS_SCHEME); + #[cfg(feature = "services-yandex-disk")] + registry.register::<opendal_service_yandex_disk::YandexDisk>( + opendal_service_yandex_disk::YANDEX_DISK_SCHEME, + ); +} + /// Re-export of service implementations. pub mod services { pub use opendal_core::services::*; @@ -202,3 +362,15 @@ pub mod layers { #[cfg(feature = "layers-tracing")] pub use opendal_layer_tracing::*; } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn from_uri_works_for_memory_by_default() -> Result<(), Error> { + let op = Operator::from_uri("memory:///")?; + assert_eq!(op.info().scheme(), "memory"); + Ok(()) + } +}
