You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by xu...@apache.org on 2025/10/14 12:24:43 UTC
(opendal) 01/03: Refactor features
This is an automated email from the ASF dual-hosted git repository.
xuanwo pushed a commit to branch cleanup-config
in repository https://gitbox.apache.org/repos/asf/opendal.git
commit d22e6565dbdcfebac9e36b35e949311372cd31a0
Author: Xuanwo <gi...@xuanwo.io>
AuthorDate: Tue Oct 14 18:01:46 2025 +0800
Refactor features
Signed-off-by: Xuanwo <gi...@xuanwo.io>
---
core/src/services/aliyun_drive/mod.rs | 8 --
core/src/services/alluxio/mod.rs | 8 --
core/src/services/azblob/mod.rs | 8 --
core/src/services/azdls/mod.rs | 8 --
core/src/services/azfile/mod.rs | 8 --
core/src/services/b2/mod.rs | 8 --
core/src/services/cacache/mod.rs | 6 --
core/src/services/cloudflare_kv/mod.rs | 9 ---
core/src/services/compfs/mod.rs | 8 --
core/src/services/cos/mod.rs | 8 --
core/src/services/d1/mod.rs | 4 -
core/src/services/dashmap/mod.rs | 7 --
core/src/services/dbfs/mod.rs | 8 --
core/src/services/dropbox/mod.rs | 9 ---
core/src/services/etcd/mod.rs | 8 --
core/src/services/foundationdb/mod.rs | 2 -
core/src/services/fs/mod.rs | 9 ---
core/src/services/ftp/mod.rs | 9 ---
core/src/services/gcs/mod.rs | 9 ---
core/src/services/gdrive/mod.rs | 9 ---
core/src/services/ghac/mod.rs | 6 --
core/src/services/github/mod.rs | 8 --
core/src/services/gridfs/mod.rs | 3 -
core/src/services/hdfs/mod.rs | 7 --
core/src/services/hdfs_native/mod.rs | 8 --
core/src/services/http/mod.rs | 5 --
core/src/services/huggingface/mod.rs | 6 --
core/src/services/ipfs/mod.rs | 6 --
core/src/services/ipmfs/mod.rs | 9 ---
core/src/services/koofr/mod.rs | 8 --
core/src/services/lakefs/mod.rs | 8 --
core/src/services/memcached/mod.rs | 3 -
core/src/services/memory/mod.rs | 7 --
core/src/services/mini_moka/mod.rs | 7 --
core/src/services/mod.rs | 124 +++++++++++++++++++++++++++++-
core/src/services/moka/mod.rs | 9 ---
core/src/services/mongodb/mod.rs | 2 -
core/src/services/monoiofs/mod.rs | 7 --
core/src/services/mysql/mod.rs | 2 -
core/src/services/obs/mod.rs | 8 --
core/src/services/onedrive/mod.rs | 10 ---
core/src/services/opfs/mod.rs | 5 --
core/src/services/oss/mod.rs | 8 --
core/src/services/pcloud/mod.rs | 8 --
core/src/services/persy/mod.rs | 2 -
core/src/services/postgresql/mod.rs | 2 -
core/src/services/redb/mod.rs | 2 -
core/src/services/redis/mod.rs | 6 --
core/src/services/rocksdb/mod.rs | 2 -
core/src/services/s3/mod.rs | 8 --
core/src/services/seafile/mod.rs | 8 --
core/src/services/sftp/mod.rs | 10 ---
core/src/services/sled/mod.rs | 2 -
core/src/services/sqlite/mod.rs | 2 -
core/src/services/surrealdb/mod.rs | 2 -
core/src/services/swift/mod.rs | 8 --
core/src/services/tikv/mod.rs | 2 -
core/src/services/upyun/mod.rs | 8 --
core/src/services/vercel_artifacts/mod.rs | 7 --
core/src/services/vercel_blob/mod.rs | 8 --
core/src/services/webdav/mod.rs | 8 --
core/src/services/webhdfs/mod.rs | 9 ---
core/src/services/yandex_disk/mod.rs | 8 --
core/src/types/operator/registry.rs | 23 +++---
64 files changed, 135 insertions(+), 419 deletions(-)
diff --git a/core/src/services/aliyun_drive/mod.rs b/core/src/services/aliyun_drive/mod.rs
index ef1862bbc..2ab6e5624 100644
--- a/core/src/services/aliyun_drive/mod.rs
+++ b/core/src/services/aliyun_drive/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for aliyun_drive service.
-#[cfg(feature = "services-aliyun-drive")]
pub(super) const DEFAULT_SCHEME: &str = "aliyun_drive";
-#[cfg(feature = "services-aliyun-drive")]
mod core;
-#[cfg(feature = "services-aliyun-drive")]
mod backend;
-#[cfg(feature = "services-aliyun-drive")]
mod delete;
-#[cfg(feature = "services-aliyun-drive")]
mod error;
-#[cfg(feature = "services-aliyun-drive")]
mod lister;
-#[cfg(feature = "services-aliyun-drive")]
mod writer;
-#[cfg(feature = "services-aliyun-drive")]
pub use backend::AliyunDriveBuilder as AliyunDrive;
mod config;
diff --git a/core/src/services/alluxio/mod.rs b/core/src/services/alluxio/mod.rs
index 71cd2b0e9..8ac90bd24 100644
--- a/core/src/services/alluxio/mod.rs
+++ b/core/src/services/alluxio/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for alluxio service.
-#[cfg(feature = "services-alluxio")]
pub(super) const DEFAULT_SCHEME: &str = "alluxio";
-#[cfg(feature = "services-alluxio")]
mod core;
-#[cfg(feature = "services-alluxio")]
mod delete;
-#[cfg(feature = "services-alluxio")]
mod error;
-#[cfg(feature = "services-alluxio")]
mod lister;
-#[cfg(feature = "services-alluxio")]
mod writer;
-#[cfg(feature = "services-alluxio")]
mod backend;
-#[cfg(feature = "services-alluxio")]
pub use backend::AlluxioBuilder as Alluxio;
mod config;
diff --git a/core/src/services/azblob/mod.rs b/core/src/services/azblob/mod.rs
index f014a29ef..ce6fa88a3 100644
--- a/core/src/services/azblob/mod.rs
+++ b/core/src/services/azblob/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for azblob service.
-#[cfg(feature = "services-azblob")]
pub const AZBLOB_SCHEME: &str = "azblob";
-#[cfg(feature = "services-azblob")]
pub(crate) mod core;
-#[cfg(feature = "services-azblob")]
mod delete;
-#[cfg(feature = "services-azblob")]
mod error;
-#[cfg(feature = "services-azblob")]
mod lister;
-#[cfg(feature = "services-azblob")]
pub(crate) mod writer;
-#[cfg(feature = "services-azblob")]
mod backend;
-#[cfg(feature = "services-azblob")]
pub use backend::AzblobBuilder as Azblob;
mod config;
diff --git a/core/src/services/azdls/mod.rs b/core/src/services/azdls/mod.rs
index 643d11aad..a046c3e9c 100644
--- a/core/src/services/azdls/mod.rs
+++ b/core/src/services/azdls/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for azdls service.
-#[cfg(feature = "services-azdls")]
pub(super) const DEFAULT_SCHEME: &str = "azdls";
-#[cfg(feature = "services-azdls")]
mod backend;
-#[cfg(feature = "services-azdls")]
mod core;
-#[cfg(feature = "services-azdls")]
mod delete;
-#[cfg(feature = "services-azdls")]
mod error;
-#[cfg(feature = "services-azdls")]
mod lister;
-#[cfg(feature = "services-azdls")]
mod writer;
-#[cfg(feature = "services-azdls")]
pub use backend::AzdlsBuilder as Azdls;
mod config;
diff --git a/core/src/services/azfile/mod.rs b/core/src/services/azfile/mod.rs
index 99ca22abf..55bb87234 100644
--- a/core/src/services/azfile/mod.rs
+++ b/core/src/services/azfile/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for azfile service.
-#[cfg(feature = "services-azfile")]
pub(super) const DEFAULT_SCHEME: &str = "azfile";
-#[cfg(feature = "services-azfile")]
mod core;
-#[cfg(feature = "services-azfile")]
mod delete;
-#[cfg(feature = "services-azfile")]
mod error;
-#[cfg(feature = "services-azfile")]
mod lister;
-#[cfg(feature = "services-azfile")]
mod writer;
-#[cfg(feature = "services-azfile")]
mod backend;
-#[cfg(feature = "services-azfile")]
pub use backend::AzfileBuilder as Azfile;
mod config;
diff --git a/core/src/services/b2/mod.rs b/core/src/services/b2/mod.rs
index 6a4778994..63e421d9d 100644
--- a/core/src/services/b2/mod.rs
+++ b/core/src/services/b2/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for b2 service.
-#[cfg(feature = "services-b2")]
pub const B2_SCHEME: &str = "b2";
-#[cfg(feature = "services-b2")]
mod core;
-#[cfg(feature = "services-b2")]
mod delete;
-#[cfg(feature = "services-b2")]
mod error;
-#[cfg(feature = "services-b2")]
mod lister;
-#[cfg(feature = "services-b2")]
mod writer;
-#[cfg(feature = "services-b2")]
mod backend;
-#[cfg(feature = "services-b2")]
pub use backend::B2Builder as B2;
mod config;
diff --git a/core/src/services/cacache/mod.rs b/core/src/services/cacache/mod.rs
index 54f973e8d..96f94b71a 100644
--- a/core/src/services/cacache/mod.rs
+++ b/core/src/services/cacache/mod.rs
@@ -16,18 +16,12 @@
// under the License.
/// Default scheme for cacache service.
-#[cfg(feature = "services-cacache")]
pub(super) const DEFAULT_SCHEME: &str = "cacache";
-#[cfg(feature = "services-cacache")]
mod backend;
-#[cfg(feature = "services-cacache")]
mod core;
-#[cfg(feature = "services-cacache")]
mod delete;
-#[cfg(feature = "services-cacache")]
mod writer;
-#[cfg(feature = "services-cacache")]
pub use backend::CacacheBuilder as Cacache;
mod config;
diff --git a/core/src/services/cloudflare_kv/mod.rs b/core/src/services/cloudflare_kv/mod.rs
index 0de5f36a1..0e1b2a9f5 100644
--- a/core/src/services/cloudflare_kv/mod.rs
+++ b/core/src/services/cloudflare_kv/mod.rs
@@ -15,24 +15,15 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-cloudflare-kv")]
pub(super) const DEFAULT_SCHEME: &str = "cloudflare_kv";
-#[cfg(feature = "services-cloudflare-kv")]
mod error;
-#[cfg(feature = "services-cloudflare-kv")]
mod backend;
-#[cfg(feature = "services-cloudflare-kv")]
mod core;
-#[cfg(feature = "services-cloudflare-kv")]
mod delete;
-#[cfg(feature = "services-cloudflare-kv")]
mod lister;
-#[cfg(feature = "services-cloudflare-kv")]
mod model;
-#[cfg(feature = "services-cloudflare-kv")]
mod writer;
-#[cfg(feature = "services-cloudflare-kv")]
pub use backend::CloudflareKvBuilder as CloudflareKv;
mod config;
diff --git a/core/src/services/compfs/mod.rs b/core/src/services/compfs/mod.rs
index 252d67f08..7e9052f95 100644
--- a/core/src/services/compfs/mod.rs
+++ b/core/src/services/compfs/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for compfs service.
-#[cfg(feature = "services-compfs")]
pub(super) const DEFAULT_SCHEME: &str = "compfs";
-#[cfg(feature = "services-compfs")]
mod core;
-#[cfg(feature = "services-compfs")]
mod delete;
-#[cfg(feature = "services-compfs")]
mod lister;
-#[cfg(feature = "services-compfs")]
mod reader;
-#[cfg(feature = "services-compfs")]
mod writer;
-#[cfg(feature = "services-compfs")]
mod backend;
-#[cfg(feature = "services-compfs")]
pub use backend::CompfsBuilder as Compfs;
mod config;
diff --git a/core/src/services/cos/mod.rs b/core/src/services/cos/mod.rs
index 0de2ff00d..2837cc775 100644
--- a/core/src/services/cos/mod.rs
+++ b/core/src/services/cos/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for cos service.
-#[cfg(feature = "services-cos")]
pub const COS_SCHEME: &str = "cos";
-#[cfg(feature = "services-cos")]
mod core;
-#[cfg(feature = "services-cos")]
mod delete;
-#[cfg(feature = "services-cos")]
mod error;
-#[cfg(feature = "services-cos")]
mod lister;
-#[cfg(feature = "services-cos")]
mod writer;
-#[cfg(feature = "services-cos")]
mod backend;
-#[cfg(feature = "services-cos")]
pub use backend::CosBuilder as Cos;
mod config;
diff --git a/core/src/services/d1/mod.rs b/core/src/services/d1/mod.rs
index 6f13716f5..9c3c6ea4d 100644
--- a/core/src/services/d1/mod.rs
+++ b/core/src/services/d1/mod.rs
@@ -15,14 +15,10 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-d1")]
mod error;
-#[cfg(feature = "services-d1")]
mod model;
-#[cfg(feature = "services-d1")]
mod backend;
-#[cfg(feature = "services-d1")]
pub use backend::D1Builder as D1;
mod config;
diff --git a/core/src/services/dashmap/mod.rs b/core/src/services/dashmap/mod.rs
index 71356a6ca..4fe62b61a 100644
--- a/core/src/services/dashmap/mod.rs
+++ b/core/src/services/dashmap/mod.rs
@@ -16,20 +16,13 @@
// under the License.
/// Default scheme for dashmap service.
-#[cfg(feature = "services-dashmap")]
pub(super) const DEFAULT_SCHEME: &str = "dashmap";
-#[cfg(feature = "services-dashmap")]
mod backend;
-#[cfg(feature = "services-dashmap")]
mod core;
-#[cfg(feature = "services-dashmap")]
mod delete;
-#[cfg(feature = "services-dashmap")]
mod lister;
-#[cfg(feature = "services-dashmap")]
mod writer;
-#[cfg(feature = "services-dashmap")]
pub use backend::DashmapBuilder as Dashmap;
mod config;
diff --git a/core/src/services/dbfs/mod.rs b/core/src/services/dbfs/mod.rs
index c76040a55..221b9f096 100644
--- a/core/src/services/dbfs/mod.rs
+++ b/core/src/services/dbfs/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for dbfs service.
-#[cfg(feature = "services-dbfs")]
pub(super) const DEFAULT_SCHEME: &str = "dbfs";
-#[cfg(feature = "services-dbfs")]
mod core;
-#[cfg(feature = "services-dbfs")]
mod delete;
-#[cfg(feature = "services-dbfs")]
mod error;
-#[cfg(feature = "services-dbfs")]
mod lister;
-#[cfg(feature = "services-dbfs")]
mod writer;
-#[cfg(feature = "services-dbfs")]
mod backend;
-#[cfg(feature = "services-dbfs")]
pub use backend::DbfsBuilder as Dbfs;
mod config;
diff --git a/core/src/services/dropbox/mod.rs b/core/src/services/dropbox/mod.rs
index a3c6f77d8..c504f0d58 100644
--- a/core/src/services/dropbox/mod.rs
+++ b/core/src/services/dropbox/mod.rs
@@ -16,24 +16,15 @@
// under the License.
/// Default scheme for dropbox service.
-#[cfg(feature = "services-dropbox")]
pub(super) const DEFAULT_SCHEME: &str = "dropbox";
-#[cfg(feature = "services-dropbox")]
mod backend;
-#[cfg(feature = "services-dropbox")]
mod core;
-#[cfg(feature = "services-dropbox")]
mod delete;
-#[cfg(feature = "services-dropbox")]
mod error;
-#[cfg(feature = "services-dropbox")]
mod lister;
-#[cfg(feature = "services-dropbox")]
mod writer;
-#[cfg(feature = "services-dropbox")]
mod builder;
-#[cfg(feature = "services-dropbox")]
pub use builder::DropboxBuilder as Dropbox;
mod config;
diff --git a/core/src/services/etcd/mod.rs b/core/src/services/etcd/mod.rs
index 49189f4d9..829b70ea4 100644
--- a/core/src/services/etcd/mod.rs
+++ b/core/src/services/etcd/mod.rs
@@ -15,21 +15,13 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-etcd")]
pub(super) const DEFAULT_SCHEME: &str = "etcd";
-#[cfg(feature = "services-etcd")]
mod backend;
-#[cfg(feature = "services-etcd")]
mod core;
-#[cfg(feature = "services-etcd")]
mod deleter;
-#[cfg(feature = "services-etcd")]
mod error;
-#[cfg(feature = "services-etcd")]
mod lister;
-#[cfg(feature = "services-etcd")]
mod writer;
-#[cfg(feature = "services-etcd")]
pub use backend::EtcdBuilder as Etcd;
mod config;
diff --git a/core/src/services/foundationdb/mod.rs b/core/src/services/foundationdb/mod.rs
index dd8650ff7..2eede8d02 100644
--- a/core/src/services/foundationdb/mod.rs
+++ b/core/src/services/foundationdb/mod.rs
@@ -15,9 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-foundationdb")]
mod backend;
-#[cfg(feature = "services-foundationdb")]
pub use backend::FoundationdbBuilder as Foundationdb;
mod config;
diff --git a/core/src/services/fs/mod.rs b/core/src/services/fs/mod.rs
index 7fa64234a..107155822 100644
--- a/core/src/services/fs/mod.rs
+++ b/core/src/services/fs/mod.rs
@@ -16,24 +16,15 @@
// under the License.
/// Default scheme for fs service.
-#[cfg(feature = "services-fs")]
pub const FS_SCHEME: &str = "fs";
-#[cfg(feature = "services-fs")]
mod core;
-#[cfg(feature = "services-fs")]
mod delete;
-#[cfg(feature = "services-fs")]
mod error;
-#[cfg(feature = "services-fs")]
mod lister;
-#[cfg(feature = "services-fs")]
mod reader;
-#[cfg(feature = "services-fs")]
mod writer;
-#[cfg(feature = "services-fs")]
mod backend;
-#[cfg(feature = "services-fs")]
pub use backend::FsBuilder as Fs;
mod config;
diff --git a/core/src/services/ftp/mod.rs b/core/src/services/ftp/mod.rs
index b264a54a0..21ac3fb2e 100644
--- a/core/src/services/ftp/mod.rs
+++ b/core/src/services/ftp/mod.rs
@@ -16,24 +16,15 @@
// under the License.
/// Default scheme for ftp service.
-#[cfg(feature = "services-ftp")]
pub(super) const DEFAULT_SCHEME: &str = "ftp";
-#[cfg(feature = "services-ftp")]
mod delete;
-#[cfg(feature = "services-ftp")]
mod err;
-#[cfg(feature = "services-ftp")]
mod lister;
-#[cfg(feature = "services-ftp")]
mod reader;
-#[cfg(feature = "services-ftp")]
mod writer;
-#[cfg(feature = "services-ftp")]
mod backend;
-#[cfg(feature = "services-ftp")]
pub use backend::FtpBuilder as Ftp;
-#[cfg(feature = "services-ftp")]
mod core;
mod config;
diff --git a/core/src/services/gcs/mod.rs b/core/src/services/gcs/mod.rs
index 0c8427158..3bf996c71 100644
--- a/core/src/services/gcs/mod.rs
+++ b/core/src/services/gcs/mod.rs
@@ -16,24 +16,15 @@
// under the License.
/// Default scheme for gcs service.
-#[cfg(feature = "services-gcs")]
pub const GCS_SCHEME: &str = "gcs";
-#[cfg(feature = "services-gcs")]
mod core;
-#[cfg(feature = "services-gcs")]
mod delete;
-#[cfg(feature = "services-gcs")]
mod error;
-#[cfg(feature = "services-gcs")]
mod lister;
-#[cfg(feature = "services-gcs")]
mod uri;
-#[cfg(feature = "services-gcs")]
mod writer;
-#[cfg(feature = "services-gcs")]
mod backend;
-#[cfg(feature = "services-gcs")]
pub use backend::GcsBuilder as Gcs;
mod config;
diff --git a/core/src/services/gdrive/mod.rs b/core/src/services/gdrive/mod.rs
index aa7e170f8..20e8a4b6a 100644
--- a/core/src/services/gdrive/mod.rs
+++ b/core/src/services/gdrive/mod.rs
@@ -16,24 +16,15 @@
// under the License.
/// Default scheme for gdrive service.
-#[cfg(feature = "services-gdrive")]
pub(super) const DEFAULT_SCHEME: &str = "gdrive";
-#[cfg(feature = "services-gdrive")]
mod backend;
-#[cfg(feature = "services-gdrive")]
mod core;
-#[cfg(feature = "services-gdrive")]
mod delete;
-#[cfg(feature = "services-gdrive")]
mod error;
-#[cfg(feature = "services-gdrive")]
mod lister;
-#[cfg(feature = "services-gdrive")]
mod writer;
-#[cfg(feature = "services-gdrive")]
mod builder;
-#[cfg(feature = "services-gdrive")]
pub use builder::GdriveBuilder as Gdrive;
mod config;
diff --git a/core/src/services/ghac/mod.rs b/core/src/services/ghac/mod.rs
index 0b4d86229..4d7253fdc 100644
--- a/core/src/services/ghac/mod.rs
+++ b/core/src/services/ghac/mod.rs
@@ -16,19 +16,13 @@
// under the License.
/// Default scheme for ghac service.
-#[cfg(feature = "services-ghac")]
pub(super) const DEFAULT_SCHEME: &str = "ghac";
-#[cfg(feature = "services-ghac")]
mod error;
-#[cfg(feature = "services-ghac")]
mod writer;
-#[cfg(feature = "services-ghac")]
mod backend;
-#[cfg(feature = "services-ghac")]
pub use backend::GhacBuilder as Ghac;
-#[cfg(feature = "services-ghac")]
mod core;
mod config;
diff --git a/core/src/services/github/mod.rs b/core/src/services/github/mod.rs
index 7d7fda699..bba40e498 100644
--- a/core/src/services/github/mod.rs
+++ b/core/src/services/github/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for github service.
-#[cfg(feature = "services-github")]
pub(super) const DEFAULT_SCHEME: &str = "github";
-#[cfg(feature = "services-github")]
mod core;
-#[cfg(feature = "services-github")]
mod delete;
-#[cfg(feature = "services-github")]
mod error;
-#[cfg(feature = "services-github")]
mod lister;
-#[cfg(feature = "services-github")]
mod writer;
-#[cfg(feature = "services-github")]
mod backend;
-#[cfg(feature = "services-github")]
pub use backend::GithubBuilder as Github;
mod config;
diff --git a/core/src/services/gridfs/mod.rs b/core/src/services/gridfs/mod.rs
index e2a95b810..f1c7c7453 100644
--- a/core/src/services/gridfs/mod.rs
+++ b/core/src/services/gridfs/mod.rs
@@ -15,11 +15,8 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-gridfs")]
mod backend;
-#[cfg(feature = "services-gridfs")]
pub use backend::GridfsBuilder as Gridfs;
-#[cfg(feature = "services-gridfs")]
mod core;
mod config;
diff --git a/core/src/services/hdfs/mod.rs b/core/src/services/hdfs/mod.rs
index 3ffbcb033..88b8e1c67 100644
--- a/core/src/services/hdfs/mod.rs
+++ b/core/src/services/hdfs/mod.rs
@@ -16,20 +16,13 @@
// under the License.
/// Default scheme for hdfs service.
-#[cfg(feature = "services-hdfs")]
pub(super) const DEFAULT_SCHEME: &str = "hdfs";
-#[cfg(feature = "services-hdfs")]
mod delete;
-#[cfg(feature = "services-hdfs")]
mod lister;
-#[cfg(feature = "services-hdfs")]
mod reader;
-#[cfg(feature = "services-hdfs")]
mod writer;
-#[cfg(feature = "services-hdfs")]
mod backend;
-#[cfg(feature = "services-hdfs")]
pub use backend::HdfsBuilder as Hdfs;
mod config;
diff --git a/core/src/services/hdfs_native/mod.rs b/core/src/services/hdfs_native/mod.rs
index 4c9c1ff02..f606ab6fe 100644
--- a/core/src/services/hdfs_native/mod.rs
+++ b/core/src/services/hdfs_native/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for hdfs_native service.
-#[cfg(feature = "services-hdfs-native")]
pub(super) const DEFAULT_SCHEME: &str = "hdfs_native";
-#[cfg(feature = "services-hdfs-native")]
mod delete;
-#[cfg(feature = "services-hdfs-native")]
mod error;
-#[cfg(feature = "services-hdfs-native")]
mod lister;
-#[cfg(feature = "services-hdfs-native")]
mod reader;
-#[cfg(feature = "services-hdfs-native")]
mod writer;
-#[cfg(feature = "services-hdfs-native")]
mod backend;
-#[cfg(feature = "services-hdfs-native")]
pub use backend::HdfsNativeBuilder as HdfsNative;
mod config;
diff --git a/core/src/services/http/mod.rs b/core/src/services/http/mod.rs
index 923d25588..7b95d3fff 100644
--- a/core/src/services/http/mod.rs
+++ b/core/src/services/http/mod.rs
@@ -16,16 +16,11 @@
// under the License.
/// Default scheme for http service.
-#[cfg(feature = "services-http")]
pub(super) const DEFAULT_SCHEME: &str = "http";
-#[cfg(feature = "services-http")]
mod error;
-#[cfg(feature = "services-http")]
mod backend;
-#[cfg(feature = "services-http")]
mod core;
-#[cfg(feature = "services-http")]
pub use backend::HttpBuilder as Http;
mod config;
diff --git a/core/src/services/huggingface/mod.rs b/core/src/services/huggingface/mod.rs
index bcf7ff9d7..58a2d40df 100644
--- a/core/src/services/huggingface/mod.rs
+++ b/core/src/services/huggingface/mod.rs
@@ -16,18 +16,12 @@
// under the License.
/// Default scheme for huggingface service.
-#[cfg(feature = "services-huggingface")]
pub(super) const DEFAULT_SCHEME: &str = "huggingface";
-#[cfg(feature = "services-huggingface")]
mod core;
-#[cfg(feature = "services-huggingface")]
mod error;
-#[cfg(feature = "services-huggingface")]
mod lister;
-#[cfg(feature = "services-huggingface")]
mod backend;
-#[cfg(feature = "services-huggingface")]
pub use backend::HuggingfaceBuilder as Huggingface;
mod config;
diff --git a/core/src/services/ipfs/mod.rs b/core/src/services/ipfs/mod.rs
index 93617c2ba..0812677a8 100644
--- a/core/src/services/ipfs/mod.rs
+++ b/core/src/services/ipfs/mod.rs
@@ -16,18 +16,12 @@
// under the License.
/// Default scheme for ipfs service.
-#[cfg(feature = "services-ipfs")]
pub(super) const DEFAULT_SCHEME: &str = "ipfs";
-#[cfg(feature = "services-ipfs")]
mod error;
-#[cfg(feature = "services-ipfs")]
mod ipld;
-#[cfg(feature = "services-ipfs")]
mod backend;
-#[cfg(feature = "services-ipfs")]
pub use backend::IpfsBuilder as Ipfs;
-#[cfg(feature = "services-ipfs")]
mod core;
mod config;
diff --git a/core/src/services/ipmfs/mod.rs b/core/src/services/ipmfs/mod.rs
index 4fe389028..97fd37694 100644
--- a/core/src/services/ipmfs/mod.rs
+++ b/core/src/services/ipmfs/mod.rs
@@ -16,24 +16,15 @@
// under the License.
/// Default scheme for ipmfs service.
-#[cfg(feature = "services-ipmfs")]
pub(super) const DEFAULT_SCHEME: &str = "ipmfs";
-#[cfg(feature = "services-ipmfs")]
mod backend;
-#[cfg(feature = "services-ipmfs")]
mod core;
-#[cfg(feature = "services-ipmfs")]
mod delete;
-#[cfg(feature = "services-ipmfs")]
mod error;
-#[cfg(feature = "services-ipmfs")]
mod lister;
-#[cfg(feature = "services-ipmfs")]
mod writer;
-#[cfg(feature = "services-ipmfs")]
mod builder;
-#[cfg(feature = "services-ipmfs")]
pub use builder::IpmfsBuilder as Ipmfs;
mod config;
diff --git a/core/src/services/koofr/mod.rs b/core/src/services/koofr/mod.rs
index 2339b6e0b..e12b4ca1a 100644
--- a/core/src/services/koofr/mod.rs
+++ b/core/src/services/koofr/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for koofr service.
-#[cfg(feature = "services-koofr")]
pub(super) const DEFAULT_SCHEME: &str = "koofr";
-#[cfg(feature = "services-koofr")]
mod core;
-#[cfg(feature = "services-koofr")]
mod delete;
-#[cfg(feature = "services-koofr")]
mod error;
-#[cfg(feature = "services-koofr")]
mod lister;
-#[cfg(feature = "services-koofr")]
mod writer;
-#[cfg(feature = "services-koofr")]
mod backend;
-#[cfg(feature = "services-koofr")]
pub use backend::KoofrBuilder as Koofr;
mod config;
diff --git a/core/src/services/lakefs/mod.rs b/core/src/services/lakefs/mod.rs
index 0183e3d84..57a699cea 100644
--- a/core/src/services/lakefs/mod.rs
+++ b/core/src/services/lakefs/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for lakefs service.
-#[cfg(feature = "services-lakefs")]
pub(super) const DEFAULT_SCHEME: &str = "lakefs";
-#[cfg(feature = "services-lakefs")]
mod core;
-#[cfg(feature = "services-lakefs")]
mod delete;
-#[cfg(feature = "services-lakefs")]
mod error;
-#[cfg(feature = "services-lakefs")]
mod lister;
-#[cfg(feature = "services-lakefs")]
mod writer;
-#[cfg(feature = "services-lakefs")]
mod backend;
-#[cfg(feature = "services-lakefs")]
pub use backend::LakefsBuilder as Lakefs;
mod config;
diff --git a/core/src/services/memcached/mod.rs b/core/src/services/memcached/mod.rs
index 3065eea73..4cb6779c7 100644
--- a/core/src/services/memcached/mod.rs
+++ b/core/src/services/memcached/mod.rs
@@ -15,12 +15,9 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-memcached")]
mod binary;
-#[cfg(feature = "services-memcached")]
mod backend;
-#[cfg(feature = "services-memcached")]
pub use backend::MemcachedBuilder as Memcached;
mod config;
diff --git a/core/src/services/memory/mod.rs b/core/src/services/memory/mod.rs
index a308c8e42..ba786dc27 100644
--- a/core/src/services/memory/mod.rs
+++ b/core/src/services/memory/mod.rs
@@ -16,21 +16,14 @@
// under the License.
/// Default scheme for memory service.
-#[cfg(feature = "services-memory")]
pub const MEMORY_SCHEME: &str = "memory";
-#[cfg(feature = "services-memory")]
mod backend;
-#[cfg(feature = "services-memory")]
pub use backend::MemoryBuilder as Memory;
mod config;
pub use config::MemoryConfig;
-#[cfg(feature = "services-memory")]
mod core;
-#[cfg(feature = "services-memory")]
mod delete;
-#[cfg(feature = "services-memory")]
mod lister;
-#[cfg(feature = "services-memory")]
mod writer;
diff --git a/core/src/services/mini_moka/mod.rs b/core/src/services/mini_moka/mod.rs
index cff46e241..437766d7c 100644
--- a/core/src/services/mini_moka/mod.rs
+++ b/core/src/services/mini_moka/mod.rs
@@ -16,20 +16,13 @@
// under the License.
/// Default scheme for mini_moka service.
-#[cfg(feature = "services-mini-moka")]
pub(super) const DEFAULT_SCHEME: &str = "mini_moka";
-#[cfg(feature = "services-mini-moka")]
mod backend;
-#[cfg(feature = "services-mini-moka")]
mod core;
-#[cfg(feature = "services-mini-moka")]
mod delete;
-#[cfg(feature = "services-mini-moka")]
mod lister;
-#[cfg(feature = "services-mini-moka")]
mod writer;
-#[cfg(feature = "services-mini-moka")]
pub use backend::MiniMokaBuilder as MiniMoka;
mod config;
diff --git a/core/src/services/mod.rs b/core/src/services/mod.rs
index a78fd9a17..57cd81b4d 100644
--- a/core/src/services/mod.rs
+++ b/core/src/services/mod.rs
@@ -19,188 +19,310 @@
//!
//! More ongoing services support is tracked at [opendal#5](https://github.com/apache/opendal/issues/5). Please feel free to submit issues if there are services not covered.
+#[cfg(feature = "services-aliyun-drive")]
mod aliyun_drive;
+#[cfg(feature = "services-aliyun-drive")]
pub use aliyun_drive::*;
+#[cfg(feature = "services-alluxio")]
mod alluxio;
+#[cfg(feature = "services-alluxio")]
pub use alluxio::*;
+#[cfg(feature = "services-azblob")]
mod azblob;
+#[cfg(feature = "services-azblob")]
pub use azblob::*;
+#[cfg(feature = "services-azdls")]
mod azdls;
+#[cfg(feature = "services-azdls")]
pub use azdls::*;
+#[cfg(feature = "services-azfile")]
mod azfile;
+#[cfg(feature = "services-azfile")]
pub use azfile::*;
+#[cfg(feature = "services-b2")]
mod b2;
+#[cfg(feature = "services-b2")]
pub use b2::*;
+#[cfg(feature = "services-cacache")]
mod cacache;
+#[cfg(feature = "services-cacache")]
pub use self::cacache::*;
+#[cfg(feature = "services-cloudflare-kv")]
mod cloudflare_kv;
+#[cfg(feature = "services-cloudflare-kv")]
pub use self::cloudflare_kv::*;
+#[cfg(feature = "services-compfs")]
mod compfs;
+#[cfg(feature = "services-compfs")]
pub use compfs::*;
+#[cfg(feature = "services-cos")]
mod cos;
+#[cfg(feature = "services-cos")]
pub use cos::*;
+#[cfg(feature = "services-d1")]
mod d1;
+#[cfg(feature = "services-d1")]
pub use self::d1::*;
+#[cfg(feature = "services-dashmap")]
mod dashmap;
+#[cfg(feature = "services-dashmap")]
pub use self::dashmap::*;
+#[cfg(feature = "services-dbfs")]
mod dbfs;
+#[cfg(feature = "services-dbfs")]
pub use self::dbfs::*;
+#[cfg(feature = "services-dropbox")]
mod dropbox;
+#[cfg(feature = "services-dropbox")]
pub use dropbox::*;
+#[cfg(feature = "services-etcd")]
mod etcd;
+#[cfg(feature = "services-etcd")]
pub use self::etcd::*;
+#[cfg(feature = "services-foundationdb")]
mod foundationdb;
+#[cfg(feature = "services-foundationdb")]
pub use self::foundationdb::*;
+#[cfg(feature = "services-fs")]
mod fs;
+#[cfg(feature = "services-fs")]
pub use fs::*;
+#[cfg(feature = "services-ftp")]
mod ftp;
+#[cfg(feature = "services-ftp")]
pub use ftp::*;
+#[cfg(feature = "services-gcs")]
mod gcs;
+#[cfg(feature = "services-gcs")]
pub use gcs::*;
+#[cfg(feature = "services-gdrive")]
mod gdrive;
+#[cfg(feature = "services-gdrive")]
pub use gdrive::*;
+#[cfg(feature = "services-ghac")]
mod ghac;
+#[cfg(feature = "services-ghac")]
pub use ghac::*;
+#[cfg(feature = "services-github")]
mod github;
+#[cfg(feature = "services-github")]
pub use github::*;
+#[cfg(feature = "services-gridfs")]
mod gridfs;
+#[cfg(feature = "services-gridfs")]
pub use gridfs::*;
+#[cfg(feature = "services-hdfs")]
mod hdfs;
+#[cfg(feature = "services-hdfs")]
pub use self::hdfs::*;
+#[cfg(feature = "services-hdfs-native")]
mod hdfs_native;
+#[cfg(feature = "services-hdfs-native")]
pub use hdfs_native::*;
+#[cfg(feature = "services-http")]
mod http;
+#[cfg(feature = "services-http")]
pub use self::http::*;
+#[cfg(feature = "services-huggingface")]
mod huggingface;
+#[cfg(feature = "services-huggingface")]
pub use huggingface::*;
+#[cfg(feature = "services-ipfs")]
mod ipfs;
+#[cfg(feature = "services-ipfs")]
pub use self::ipfs::*;
+#[cfg(feature = "services-ipmfs")]
mod ipmfs;
+#[cfg(feature = "services-ipmfs")]
pub use ipmfs::*;
+#[cfg(feature = "services-koofr")]
mod koofr;
+#[cfg(feature = "services-koofr")]
pub use koofr::*;
+#[cfg(feature = "services-lakefs")]
mod lakefs;
+#[cfg(feature = "services-lakefs")]
pub use lakefs::*;
+#[cfg(feature = "services-memcached")]
mod memcached;
+#[cfg(feature = "services-memcached")]
pub use memcached::*;
+#[cfg(feature = "services-memory")]
mod memory;
+#[cfg(feature = "services-memory")]
pub use self::memory::*;
+#[cfg(feature = "services-mini-moka")]
mod mini_moka;
+#[cfg(feature = "services-mini-moka")]
pub use self::mini_moka::*;
+#[cfg(feature = "services-moka")]
mod moka;
+#[cfg(feature = "services-moka")]
pub use self::moka::*;
+#[cfg(feature = "services-mongodb")]
mod mongodb;
+#[cfg(feature = "services-mongodb")]
pub use self::mongodb::*;
+#[cfg(feature = "services-monoiofs")]
mod monoiofs;
+#[cfg(feature = "services-monoiofs")]
pub use monoiofs::*;
+#[cfg(feature = "services-mysql")]
mod mysql;
+#[cfg(feature = "services-mysql")]
pub use self::mysql::*;
+#[cfg(feature = "services-obs")]
mod obs;
+#[cfg(feature = "services-obs")]
pub use obs::*;
+#[cfg(feature = "services-onedrive")]
mod onedrive;
+#[cfg(feature = "services-onedrive")]
pub use onedrive::*;
+#[cfg(feature = "services-oss")]
mod oss;
+#[cfg(feature = "services-oss")]
pub use oss::*;
+#[cfg(feature = "services-pcloud")]
mod pcloud;
+#[cfg(feature = "services-pcloud")]
pub use pcloud::*;
+#[cfg(feature = "services-persy")]
mod persy;
+#[cfg(feature = "services-persy")]
pub use self::persy::*;
+#[cfg(feature = "services-postgresql")]
mod postgresql;
+#[cfg(feature = "services-postgresql")]
pub use self::postgresql::*;
+#[cfg(feature = "services-redb")]
mod redb;
+#[cfg(feature = "services-redb")]
pub use self::redb::*;
+#[cfg(feature = "services-redis")]
mod redis;
+#[cfg(feature = "services-redis")]
pub use self::redis::*;
+#[cfg(feature = "services-rocksdb")]
mod rocksdb;
+#[cfg(feature = "services-rocksdb")]
pub use self::rocksdb::*;
+#[cfg(feature = "services-s3")]
mod s3;
+#[cfg(feature = "services-s3")]
pub use s3::*;
+#[cfg(feature = "services-seafile")]
mod seafile;
+#[cfg(feature = "services-seafile")]
pub use seafile::*;
+#[cfg(feature = "services-sftp")]
mod sftp;
+#[cfg(feature = "services-sftp")]
pub use sftp::*;
+#[cfg(feature = "services-sled")]
mod sled;
+#[cfg(feature = "services-sled")]
pub use self::sled::*;
+#[cfg(feature = "services-sqlite")]
mod sqlite;
+#[cfg(feature = "services-sqlite")]
pub use self::sqlite::*;
+#[cfg(feature = "services-surrealdb")]
mod surrealdb;
+#[cfg(feature = "services-surrealdb")]
pub use surrealdb::*;
+#[cfg(feature = "services-swift")]
mod swift;
+#[cfg(feature = "services-swift")]
pub use self::swift::*;
+#[cfg(feature = "services-tikv")]
mod tikv;
+#[cfg(feature = "services-tikv")]
pub use self::tikv::*;
+#[cfg(feature = "services-upyun")]
mod upyun;
+#[cfg(feature = "services-upyun")]
pub use upyun::*;
+#[cfg(feature = "services-vercel-artifacts")]
mod vercel_artifacts;
+#[cfg(feature = "services-vercel-artifacts")]
pub use vercel_artifacts::*;
+#[cfg(feature = "services-vercel-blob")]
mod vercel_blob;
+#[cfg(feature = "services-vercel-blob")]
pub use vercel_blob::*;
+#[cfg(feature = "services-webdav")]
mod webdav;
+#[cfg(feature = "services-webdav")]
pub use webdav::*;
+#[cfg(feature = "services-webhdfs")]
mod webhdfs;
+#[cfg(feature = "services-webhdfs")]
pub use webhdfs::*;
+#[cfg(feature = "services-yandex-disk")]
mod yandex_disk;
+#[cfg(feature = "services-yandex-disk")]
pub use yandex_disk::*;
-#[cfg(target_arch = "wasm32")]
+#[cfg(all(target_arch = "wasm32", feature = "services-opfs"))]
mod opfs;
diff --git a/core/src/services/moka/mod.rs b/core/src/services/moka/mod.rs
index ccbeb0cc2..9393cdb89 100644
--- a/core/src/services/moka/mod.rs
+++ b/core/src/services/moka/mod.rs
@@ -16,25 +16,16 @@
// under the License.
/// Default scheme for moka service.
-#[cfg(feature = "services-moka")]
pub(super) const DEFAULT_SCHEME: &str = "moka";
-#[cfg(feature = "services-moka")]
mod backend;
-#[cfg(feature = "services-moka")]
mod core;
-#[cfg(feature = "services-moka")]
mod delete;
-#[cfg(feature = "services-moka")]
mod lister;
-#[cfg(feature = "services-moka")]
mod writer;
-#[cfg(feature = "services-moka")]
pub use backend::MokaBuilder as Moka;
-#[cfg(feature = "services-moka")]
pub use backend::MokaCacheBuilder;
-#[cfg(feature = "services-moka")]
pub use core::MokaValue;
mod config;
diff --git a/core/src/services/mongodb/mod.rs b/core/src/services/mongodb/mod.rs
index a276de95d..1ce9bd23d 100644
--- a/core/src/services/mongodb/mod.rs
+++ b/core/src/services/mongodb/mod.rs
@@ -15,9 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-mongodb")]
mod backend;
-#[cfg(feature = "services-mongodb")]
pub use backend::MongodbBuilder as Mongodb;
mod config;
diff --git a/core/src/services/monoiofs/mod.rs b/core/src/services/monoiofs/mod.rs
index 9dbcb06f9..87b3b778e 100644
--- a/core/src/services/monoiofs/mod.rs
+++ b/core/src/services/monoiofs/mod.rs
@@ -16,20 +16,13 @@
// under the License.
/// Default scheme for monoiofs service.
-#[cfg(feature = "services-monoiofs")]
pub(super) const DEFAULT_SCHEME: &str = "monoiofs";
-#[cfg(feature = "services-monoiofs")]
mod core;
-#[cfg(feature = "services-monoiofs")]
mod delete;
-#[cfg(feature = "services-monoiofs")]
mod reader;
-#[cfg(feature = "services-monoiofs")]
mod writer;
-#[cfg(feature = "services-monoiofs")]
mod backend;
-#[cfg(feature = "services-monoiofs")]
pub use backend::MonoiofsBuilder as Monoiofs;
mod config;
diff --git a/core/src/services/mysql/mod.rs b/core/src/services/mysql/mod.rs
index 9b3338894..922b2315c 100644
--- a/core/src/services/mysql/mod.rs
+++ b/core/src/services/mysql/mod.rs
@@ -15,9 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-mysql")]
mod backend;
-#[cfg(feature = "services-mysql")]
pub use backend::MysqlBuilder as Mysql;
mod config;
diff --git a/core/src/services/obs/mod.rs b/core/src/services/obs/mod.rs
index c33719f6a..ee2e0f183 100644
--- a/core/src/services/obs/mod.rs
+++ b/core/src/services/obs/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for obs service.
-#[cfg(feature = "services-obs")]
pub const OBS_SCHEME: &str = "obs";
-#[cfg(feature = "services-obs")]
mod core;
-#[cfg(feature = "services-obs")]
mod delete;
-#[cfg(feature = "services-obs")]
mod error;
-#[cfg(feature = "services-obs")]
mod lister;
-#[cfg(feature = "services-obs")]
mod writer;
-#[cfg(feature = "services-obs")]
mod backend;
-#[cfg(feature = "services-obs")]
pub use backend::ObsBuilder as Obs;
mod config;
diff --git a/core/src/services/onedrive/mod.rs b/core/src/services/onedrive/mod.rs
index cd1a892b4..8183f3dd1 100644
--- a/core/src/services/onedrive/mod.rs
+++ b/core/src/services/onedrive/mod.rs
@@ -16,26 +16,16 @@
// under the License.
/// Default scheme for onedrive service.
-#[cfg(feature = "services-onedrive")]
pub(super) const DEFAULT_SCHEME: &str = "onedrive";
-#[cfg(feature = "services-onedrive")]
mod backend;
-#[cfg(feature = "services-onedrive")]
mod core;
-#[cfg(feature = "services-onedrive")]
mod delete;
-#[cfg(feature = "services-onedrive")]
mod error;
-#[cfg(feature = "services-onedrive")]
mod graph_model;
-#[cfg(feature = "services-onedrive")]
mod lister;
-#[cfg(feature = "services-onedrive")]
mod writer;
-#[cfg(feature = "services-onedrive")]
mod builder;
-#[cfg(feature = "services-onedrive")]
pub use builder::OnedriveBuilder as Onedrive;
mod config;
diff --git a/core/src/services/opfs/mod.rs b/core/src/services/opfs/mod.rs
index c143d37b3..cbe59ee9e 100644
--- a/core/src/services/opfs/mod.rs
+++ b/core/src/services/opfs/mod.rs
@@ -15,16 +15,11 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-opfs")]
mod backend;
-#[cfg(feature = "services-opfs")]
mod core;
-#[cfg(feature = "services-opfs")]
mod config;
-#[cfg(feature = "services-opfs")]
mod error;
-#[cfg(feature = "services-opfs")]
mod utils;
diff --git a/core/src/services/oss/mod.rs b/core/src/services/oss/mod.rs
index e3e05c1b6..f39bdf37e 100644
--- a/core/src/services/oss/mod.rs
+++ b/core/src/services/oss/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for oss service.
-#[cfg(feature = "services-oss")]
pub const OSS_SCHEME: &str = "oss";
-#[cfg(feature = "services-oss")]
mod core;
-#[cfg(feature = "services-oss")]
mod delete;
-#[cfg(feature = "services-oss")]
mod error;
-#[cfg(feature = "services-oss")]
mod lister;
-#[cfg(feature = "services-oss")]
mod writer;
-#[cfg(feature = "services-oss")]
mod backend;
-#[cfg(feature = "services-oss")]
pub use backend::OssBuilder as Oss;
mod config;
diff --git a/core/src/services/pcloud/mod.rs b/core/src/services/pcloud/mod.rs
index 139528f7f..fdcf2bb2f 100644
--- a/core/src/services/pcloud/mod.rs
+++ b/core/src/services/pcloud/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for pcloud service.
-#[cfg(feature = "services-pcloud")]
pub(super) const DEFAULT_SCHEME: &str = "pcloud";
-#[cfg(feature = "services-pcloud")]
mod core;
-#[cfg(feature = "services-pcloud")]
mod delete;
-#[cfg(feature = "services-pcloud")]
mod error;
-#[cfg(feature = "services-pcloud")]
mod lister;
-#[cfg(feature = "services-pcloud")]
mod writer;
-#[cfg(feature = "services-pcloud")]
mod backend;
-#[cfg(feature = "services-pcloud")]
pub use backend::PcloudBuilder as Pcloud;
mod config;
diff --git a/core/src/services/persy/mod.rs b/core/src/services/persy/mod.rs
index 005f345ff..6c387ff15 100644
--- a/core/src/services/persy/mod.rs
+++ b/core/src/services/persy/mod.rs
@@ -15,9 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-persy")]
mod backend;
-#[cfg(feature = "services-persy")]
pub use backend::PersyBuilder as Persy;
mod config;
diff --git a/core/src/services/postgresql/mod.rs b/core/src/services/postgresql/mod.rs
index 1f1d666eb..bba64b60c 100644
--- a/core/src/services/postgresql/mod.rs
+++ b/core/src/services/postgresql/mod.rs
@@ -15,9 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-postgresql")]
mod backend;
-#[cfg(feature = "services-postgresql")]
pub use backend::PostgresqlBuilder as Postgresql;
mod config;
diff --git a/core/src/services/redb/mod.rs b/core/src/services/redb/mod.rs
index 1c44bcd06..e13f5e6b2 100644
--- a/core/src/services/redb/mod.rs
+++ b/core/src/services/redb/mod.rs
@@ -15,9 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-redb")]
mod backend;
-#[cfg(feature = "services-redb")]
pub use backend::RedbBuilder as Redb;
mod config;
diff --git a/core/src/services/redis/mod.rs b/core/src/services/redis/mod.rs
index dc187886b..91de87438 100644
--- a/core/src/services/redis/mod.rs
+++ b/core/src/services/redis/mod.rs
@@ -16,18 +16,12 @@
// under the License.
/// Default scheme for redis service.
-#[cfg(feature = "services-redis")]
pub(super) const DEFAULT_SCHEME: &str = "redis";
-#[cfg(feature = "services-redis")]
mod backend;
-#[cfg(feature = "services-redis")]
mod core;
-#[cfg(feature = "services-redis")]
mod delete;
-#[cfg(feature = "services-redis")]
mod writer;
-#[cfg(feature = "services-redis")]
pub use backend::RedisBuilder as Redis;
mod config;
diff --git a/core/src/services/rocksdb/mod.rs b/core/src/services/rocksdb/mod.rs
index d859ce4c7..9a55a345e 100644
--- a/core/src/services/rocksdb/mod.rs
+++ b/core/src/services/rocksdb/mod.rs
@@ -15,9 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-rocksdb")]
mod backend;
-#[cfg(feature = "services-rocksdb")]
pub use backend::RocksdbBuilder as Rocksdb;
mod config;
diff --git a/core/src/services/s3/mod.rs b/core/src/services/s3/mod.rs
index ab1c0810e..a0052ac1b 100644
--- a/core/src/services/s3/mod.rs
+++ b/core/src/services/s3/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for s3 service.
-#[cfg(feature = "services-s3")]
pub const S3_SCHEME: &str = "s3";
-#[cfg(feature = "services-s3")]
mod core;
-#[cfg(feature = "services-s3")]
mod delete;
-#[cfg(feature = "services-s3")]
mod error;
-#[cfg(feature = "services-s3")]
mod lister;
-#[cfg(feature = "services-s3")]
mod writer;
-#[cfg(feature = "services-s3")]
mod backend;
-#[cfg(feature = "services-s3")]
pub use backend::S3Builder as S3;
mod config;
diff --git a/core/src/services/seafile/mod.rs b/core/src/services/seafile/mod.rs
index e08c059cb..ac371b4e2 100644
--- a/core/src/services/seafile/mod.rs
+++ b/core/src/services/seafile/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for seafile service.
-#[cfg(feature = "services-seafile")]
pub(super) const DEFAULT_SCHEME: &str = "seafile";
-#[cfg(feature = "services-seafile")]
mod core;
-#[cfg(feature = "services-seafile")]
mod delete;
-#[cfg(feature = "services-seafile")]
mod error;
-#[cfg(feature = "services-seafile")]
mod lister;
-#[cfg(feature = "services-seafile")]
mod writer;
-#[cfg(feature = "services-seafile")]
mod backend;
-#[cfg(feature = "services-seafile")]
pub use backend::SeafileBuilder as Seafile;
mod config;
diff --git a/core/src/services/sftp/mod.rs b/core/src/services/sftp/mod.rs
index 537edfd3e..e513792d1 100644
--- a/core/src/services/sftp/mod.rs
+++ b/core/src/services/sftp/mod.rs
@@ -16,26 +16,16 @@
// under the License.
/// Default scheme for sftp service.
-#[cfg(feature = "services-sftp")]
pub(super) const DEFAULT_SCHEME: &str = "sftp";
-#[cfg(feature = "services-sftp")]
mod delete;
-#[cfg(feature = "services-sftp")]
mod error;
-#[cfg(feature = "services-sftp")]
mod lister;
-#[cfg(feature = "services-sftp")]
mod reader;
-#[cfg(feature = "services-sftp")]
mod utils;
-#[cfg(feature = "services-sftp")]
mod writer;
-#[cfg(feature = "services-sftp")]
mod backend;
-#[cfg(feature = "services-sftp")]
pub use backend::SftpBuilder as Sftp;
-#[cfg(feature = "services-sftp")]
mod core;
mod config;
diff --git a/core/src/services/sled/mod.rs b/core/src/services/sled/mod.rs
index f8771b65f..49794745a 100644
--- a/core/src/services/sled/mod.rs
+++ b/core/src/services/sled/mod.rs
@@ -15,9 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-sled")]
mod backend;
-#[cfg(feature = "services-sled")]
pub use backend::SledBuilder as Sled;
mod config;
diff --git a/core/src/services/sqlite/mod.rs b/core/src/services/sqlite/mod.rs
index 32dfb9177..2d69236c0 100644
--- a/core/src/services/sqlite/mod.rs
+++ b/core/src/services/sqlite/mod.rs
@@ -15,9 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-sqlite")]
mod backend;
-#[cfg(feature = "services-sqlite")]
pub use backend::SqliteBuilder as Sqlite;
mod config;
diff --git a/core/src/services/surrealdb/mod.rs b/core/src/services/surrealdb/mod.rs
index 40cabaf71..a427aac3b 100644
--- a/core/src/services/surrealdb/mod.rs
+++ b/core/src/services/surrealdb/mod.rs
@@ -15,9 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-surrealdb")]
mod backend;
-#[cfg(feature = "services-surrealdb")]
pub use backend::SurrealdbBuilder as Surrealdb;
mod config;
diff --git a/core/src/services/swift/mod.rs b/core/src/services/swift/mod.rs
index 0928a0132..fd8277ab9 100644
--- a/core/src/services/swift/mod.rs
+++ b/core/src/services/swift/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for swift service.
-#[cfg(feature = "services-swift")]
pub(super) const DEFAULT_SCHEME: &str = "swift";
-#[cfg(feature = "services-swift")]
mod core;
-#[cfg(feature = "services-swift")]
mod delete;
-#[cfg(feature = "services-swift")]
mod error;
-#[cfg(feature = "services-swift")]
mod lister;
-#[cfg(feature = "services-swift")]
mod writer;
-#[cfg(feature = "services-swift")]
mod backend;
-#[cfg(feature = "services-swift")]
pub use backend::SwiftBuilder as Swift;
mod config;
diff --git a/core/src/services/tikv/mod.rs b/core/src/services/tikv/mod.rs
index 36bf76344..f521407fb 100644
--- a/core/src/services/tikv/mod.rs
+++ b/core/src/services/tikv/mod.rs
@@ -15,9 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-#[cfg(feature = "services-tikv")]
mod backend;
-#[cfg(feature = "services-tikv")]
pub use backend::TikvBuilder as Tikv;
mod config;
diff --git a/core/src/services/upyun/mod.rs b/core/src/services/upyun/mod.rs
index 50db7493e..98835b5b3 100644
--- a/core/src/services/upyun/mod.rs
+++ b/core/src/services/upyun/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for upyun service.
-#[cfg(feature = "services-upyun")]
pub const UPYUN_SCHEME: &str = "upyun";
-#[cfg(feature = "services-upyun")]
mod core;
-#[cfg(feature = "services-upyun")]
mod delete;
-#[cfg(feature = "services-upyun")]
mod error;
-#[cfg(feature = "services-upyun")]
mod lister;
-#[cfg(feature = "services-upyun")]
mod writer;
-#[cfg(feature = "services-upyun")]
mod backend;
-#[cfg(feature = "services-upyun")]
pub use backend::UpyunBuilder as Upyun;
mod config;
diff --git a/core/src/services/vercel_artifacts/mod.rs b/core/src/services/vercel_artifacts/mod.rs
index 086f792c0..60b9774c7 100644
--- a/core/src/services/vercel_artifacts/mod.rs
+++ b/core/src/services/vercel_artifacts/mod.rs
@@ -16,20 +16,13 @@
// under the License.
/// Default scheme for vercel_artifacts service.
-#[cfg(feature = "services-vercel-artifacts")]
pub(super) const DEFAULT_SCHEME: &str = "vercel_artifacts";
-#[cfg(feature = "services-vercel-artifacts")]
mod backend;
-#[cfg(feature = "services-vercel-artifacts")]
mod core;
-#[cfg(feature = "services-vercel-artifacts")]
mod error;
-#[cfg(feature = "services-vercel-artifacts")]
mod writer;
-#[cfg(feature = "services-vercel-artifacts")]
mod builder;
-#[cfg(feature = "services-vercel-artifacts")]
pub use builder::VercelArtifactsBuilder as VercelArtifacts;
mod config;
diff --git a/core/src/services/vercel_blob/mod.rs b/core/src/services/vercel_blob/mod.rs
index cb2aed418..5658cf65c 100644
--- a/core/src/services/vercel_blob/mod.rs
+++ b/core/src/services/vercel_blob/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for vercel_blob service.
-#[cfg(feature = "services-vercel-blob")]
pub(super) const DEFAULT_SCHEME: &str = "vercel_blob";
-#[cfg(feature = "services-vercel-blob")]
mod core;
-#[cfg(feature = "services-vercel-blob")]
mod delete;
-#[cfg(feature = "services-vercel-blob")]
mod error;
-#[cfg(feature = "services-vercel-blob")]
mod lister;
-#[cfg(feature = "services-vercel-blob")]
mod writer;
-#[cfg(feature = "services-vercel-blob")]
mod backend;
-#[cfg(feature = "services-vercel-blob")]
pub use backend::VercelBlobBuilder as VercelBlob;
mod config;
diff --git a/core/src/services/webdav/mod.rs b/core/src/services/webdav/mod.rs
index 20ba1d3dc..0fd91e5bf 100644
--- a/core/src/services/webdav/mod.rs
+++ b/core/src/services/webdav/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for webdav service.
-#[cfg(feature = "services-webdav")]
pub(super) const DEFAULT_SCHEME: &str = "webdav";
-#[cfg(feature = "services-webdav")]
mod core;
-#[cfg(feature = "services-webdav")]
mod delete;
-#[cfg(feature = "services-webdav")]
mod error;
-#[cfg(feature = "services-webdav")]
mod lister;
-#[cfg(feature = "services-webdav")]
mod writer;
-#[cfg(feature = "services-webdav")]
mod backend;
-#[cfg(feature = "services-webdav")]
pub use backend::WebdavBuilder as Webdav;
mod config;
diff --git a/core/src/services/webhdfs/mod.rs b/core/src/services/webhdfs/mod.rs
index 4336f2eb6..2e83c6fb9 100644
--- a/core/src/services/webhdfs/mod.rs
+++ b/core/src/services/webhdfs/mod.rs
@@ -16,25 +16,16 @@
// under the License.
/// Default scheme for webhdfs service.
-#[cfg(feature = "services-webhdfs")]
pub(super) const DEFAULT_SCHEME: &str = "webhdfs";
-#[cfg(feature = "services-webhdfs")]
mod delete;
-#[cfg(feature = "services-webhdfs")]
mod error;
-#[cfg(feature = "services-webhdfs")]
mod lister;
-#[cfg(feature = "services-webhdfs")]
mod message;
-#[cfg(feature = "services-webhdfs")]
mod writer;
-#[cfg(feature = "services-webhdfs")]
mod backend;
-#[cfg(feature = "services-webhdfs")]
pub use backend::WebhdfsBuilder as Webhdfs;
-#[cfg(feature = "services-webhdfs")]
mod core;
mod config;
diff --git a/core/src/services/yandex_disk/mod.rs b/core/src/services/yandex_disk/mod.rs
index 7e2129491..ed15e07ee 100644
--- a/core/src/services/yandex_disk/mod.rs
+++ b/core/src/services/yandex_disk/mod.rs
@@ -16,22 +16,14 @@
// under the License.
/// Default scheme for yandex_disk service.
-#[cfg(feature = "services-yandex-disk")]
pub(super) const DEFAULT_SCHEME: &str = "yandex_disk";
-#[cfg(feature = "services-yandex-disk")]
mod core;
-#[cfg(feature = "services-yandex-disk")]
mod delete;
-#[cfg(feature = "services-yandex-disk")]
mod error;
-#[cfg(feature = "services-yandex-disk")]
mod lister;
-#[cfg(feature = "services-yandex-disk")]
mod writer;
-#[cfg(feature = "services-yandex-disk")]
mod backend;
-#[cfg(feature = "services-yandex-disk")]
pub use backend::YandexDiskBuilder as YandexDisk;
mod config;
diff --git a/core/src/types/operator/registry.rs b/core/src/types/operator/registry.rs
index 006c6d843..1a4efb801 100644
--- a/core/src/types/operator/registry.rs
+++ b/core/src/types/operator/registry.rs
@@ -18,7 +18,6 @@
use std::collections::HashMap;
use std::sync::{LazyLock, Mutex};
-use crate::services;
use crate::types::builder::{Builder, Configurator};
use crate::types::{IntoOperatorUri, OperatorUri};
use crate::{Error, ErrorKind, Operator, Result};
@@ -78,26 +77,28 @@ impl OperatorRegistry {
}
fn register_builtin_services(registry: &OperatorRegistry) {
+ let _ = registry;
+
#[cfg(feature = "services-memory")]
- registry.register::<services::Memory>(services::MEMORY_SCHEME);
+ registry.register::<crate::services::Memory>(crate::services::MEMORY_SCHEME);
#[cfg(feature = "services-fs")]
- registry.register::<services::Fs>(services::FS_SCHEME);
+ registry.register::<crate::services::Fs>(crate::services::FS_SCHEME);
#[cfg(feature = "services-s3")]
- registry.register::<services::S3>(services::S3_SCHEME);
+ registry.register::<crate::services::S3>(crate::services::S3_SCHEME);
#[cfg(feature = "services-azblob")]
- registry.register::<services::Azblob>(services::AZBLOB_SCHEME);
+ registry.register::<crate::services::Azblob>(crate::services::AZBLOB_SCHEME);
#[cfg(feature = "services-b2")]
- registry.register::<services::B2>(services::B2_SCHEME);
+ registry.register::<crate::services::B2>(crate::services::B2_SCHEME);
#[cfg(feature = "services-cos")]
- registry.register::<services::Cos>(services::COS_SCHEME);
+ registry.register::<crate::services::Cos>(crate::services::COS_SCHEME);
#[cfg(feature = "services-gcs")]
- registry.register::<services::Gcs>(services::GCS_SCHEME);
+ registry.register::<crate::services::Gcs>(crate::services::GCS_SCHEME);
#[cfg(feature = "services-obs")]
- registry.register::<services::Obs>(services::OBS_SCHEME);
+ registry.register::<crate::services::Obs>(crate::services::OBS_SCHEME);
#[cfg(feature = "services-oss")]
- registry.register::<services::Oss>(services::OSS_SCHEME);
+ registry.register::<crate::services::Oss>(crate::services::OSS_SCHEME);
#[cfg(feature = "services-upyun")]
- registry.register::<services::Upyun>(services::UPYUN_SCHEME);
+ registry.register::<crate::services::Upyun>(crate::services::UPYUN_SCHEME);
}
/// Factory adapter that builds an operator from a configurator type.