Skip to content

Commit 7504b93

Browse files
authored
feat: Add feature flag for all services (#1915)
* feat: Add feature for all services Signed-off-by: Xuanwo <[email protected]> * fix unit test Signed-off-by: Xuanwo <[email protected]> --------- Signed-off-by: Xuanwo <[email protected]>
1 parent abc6771 commit 7504b93

17 files changed

+135
-124
lines changed

Cargo.lock

+9-36
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/Cargo.toml

+61-20
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,23 @@ version.workspace = true
3434
all-features = true
3535

3636
[features]
37-
default = ["rustls"]
37+
default = [
38+
"rustls",
39+
"services-azblob",
40+
"services-azdfs",
41+
"services-fs",
42+
"services-gcs",
43+
"services-ghac",
44+
"services-http",
45+
"services-ipmfs",
46+
"services-memory",
47+
"services-obs",
48+
"services-oss",
49+
"services-s3",
50+
"services-sled",
51+
"services-webdav",
52+
"services-webhdfs",
53+
]
3854

3955
# Build docs or not.
4056
#
@@ -43,14 +59,14 @@ default = ["rustls"]
4359
docs = []
4460

4561
# Enable trust-dns for pure rust dns cache.
46-
trust-dns = ["reqwest/trust-dns", "dep:trust-dns-resolver"]
62+
trust-dns = ["reqwest/trust-dns"]
4763

4864
# Enable rustls for TLS support
49-
rustls = ["reqwest/rustls-tls-native-roots", "ureq/tls", "ureq/native-certs"]
65+
rustls = ["reqwest/rustls-tls-native-roots"]
5066
# Enable native-tls for TLS support
51-
native-tls = ["reqwest/native-tls", "ureq/native-tls"]
67+
native-tls = ["reqwest/native-tls"]
5268
# Enable vendored native-tls for TLS support
53-
native-tls-vendored = ["reqwest/native-tls-vendored", "ureq/native-tls"]
69+
native-tls-vendored = ["reqwest/native-tls-vendored"]
5470

5571
# Enable all layers.
5672
layers-all = ["layers-chaos", "layers-metrics", "layers-tracing"]
@@ -61,24 +77,52 @@ layers-metrics = ["dep:metrics"]
6177
# Enable layers tracing support.
6278
layers-tracing = ["dep:tracing"]
6379

64-
# Enable services dashmap support
80+
services-azblob = [
81+
"dep:reqsign",
82+
"reqsign?/services-azblob",
83+
"reqsign?/reqwest_request",
84+
]
85+
services-azdfs = [
86+
"dep:reqsign",
87+
"reqsign?/services-azblob",
88+
"reqsign?/reqwest_request",
89+
]
6590
services-dashmap = ["dep:dashmap"]
66-
# Enable services ftp support
91+
services-fs = ["tokio/fs"]
6792
services-ftp = ["dep:suppaftp", "dep:lazy-regex", "dep:bb8", "dep:async-tls"]
68-
# Enable services hdfs support
93+
services-gcs = [
94+
"dep:reqsign",
95+
"reqsign?/services-google",
96+
"reqsign?/reqwest_request",
97+
]
98+
services-ghac = []
6999
services-hdfs = ["dep:hdrs"]
70-
# Enable services ipfs support
100+
services-http = []
71101
services-ipfs = ["dep:prost"]
72-
# Enable services memcached support
102+
services-ipmfs = []
73103
services-memcached = ["dep:bb8"]
74-
# Enable services moka support
104+
services-memory = []
75105
services-moka = ["dep:moka"]
76-
# Enable services redis support
106+
services-obs = [
107+
"dep:reqsign",
108+
"reqsign?/services-huaweicloud",
109+
"reqsign?/reqwest_request",
110+
]
111+
services-oss = [
112+
"dep:reqsign",
113+
"reqsign?/services-aliyun",
114+
"reqsign?/reqwest_request",
115+
]
77116
services-redis = ["dep:redis"]
78-
# Enable services rocksdb support
79117
services-rocksdb = ["dep:rocksdb"]
80-
# Enable services sled support
118+
services-s3 = [
119+
"dep:reqsign",
120+
"reqsign?/services-aws",
121+
"reqsign?/reqwest_request",
122+
]
81123
services-sled = ["dep:sled"]
124+
services-webdav = []
125+
services-webhdfs = []
82126

83127
[lib]
84128
bench = false
@@ -96,6 +140,7 @@ backon = "0.4.0"
96140
base64 = "0.21"
97141
bb8 = { version = "0.8", optional = true }
98142
bytes = "1.2"
143+
chrono = "0.4.24"
99144
dashmap = { version = "5.4", optional = true }
100145
flagset = "0.4"
101146
futures = { version = "0.3", features = ["alloc"] }
@@ -118,8 +163,7 @@ redis = { version = "0.22", features = [
118163
"tokio-comp",
119164
"connection-manager",
120165
], optional = true }
121-
# NOTE: we keep this for service migration one by one. And finally we will replace reqsign by v0.9.
122-
reqsign_0_9 = { package = "reqsign", git = "https://github.com/Xuanwo/reqsign", rev = "3707b084b534233a11cd34729dba8ec4f4c9e1fc" }
166+
reqsign = { version = "0.9.1", default-features = false, optional = true }
123167
reqwest = { version = "0.11.13", features = [
124168
"multipart",
125169
"stream",
@@ -132,11 +176,8 @@ suppaftp = { version = "4.5", default-features = false, features = [
132176
"async-secure",
133177
"async-rustls",
134178
], optional = true }
135-
chrono = "0.4.24"
136-
tokio = { version = "1.27", features = ["fs"] }
179+
tokio = "1.27"
137180
tracing = { version = "0.1", optional = true }
138-
trust-dns-resolver = { version = "0.22", optional = true }
139-
ureq = { version = "2", default-features = false }
140181
uuid = { version = "1", features = ["serde", "v4"] }
141182

142183
[dev-dependencies]

core/src/services/azblob/backend.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ use async_trait::async_trait;
2424
use http::header::CONTENT_TYPE;
2525
use http::StatusCode;
2626
use log::debug;
27-
use reqsign_0_9::AzureStorageConfig;
28-
use reqsign_0_9::AzureStorageLoader;
29-
use reqsign_0_9::AzureStorageSigner;
27+
use reqsign::AzureStorageConfig;
28+
use reqsign::AzureStorageLoader;
29+
use reqsign::AzureStorageSigner;
3030

3131
use super::batch::parse_batch_delete_response;
3232
use super::error::parse_error;

core/src/services/azblob/core.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ use http::header::CONTENT_TYPE;
2727
use http::Request;
2828
use http::Response;
2929
use http::Uri;
30-
use reqsign_0_9::AzureStorageCredential;
31-
use reqsign_0_9::AzureStorageLoader;
32-
use reqsign_0_9::AzureStorageSigner;
30+
use reqsign::AzureStorageCredential;
31+
use reqsign::AzureStorageLoader;
32+
use reqsign::AzureStorageSigner;
3333

3434
use super::batch::BatchDeleteRequestBuilder;
3535
use crate::raw::*;

core/src/services/azdfs/backend.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ use std::sync::Arc;
2323
use async_trait::async_trait;
2424
use http::StatusCode;
2525
use log::debug;
26-
use reqsign_0_9::AzureStorageConfig;
27-
use reqsign_0_9::AzureStorageLoader;
28-
use reqsign_0_9::AzureStorageSigner;
26+
use reqsign::AzureStorageConfig;
27+
use reqsign::AzureStorageLoader;
28+
use reqsign::AzureStorageSigner;
2929

3030
use super::core::AzdfsCore;
3131
use super::error::parse_error;

core/src/services/azdfs/core.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ use http::header::CONTENT_LENGTH;
2525
use http::header::CONTENT_TYPE;
2626
use http::Request;
2727
use http::Response;
28-
use reqsign_0_9::AzureStorageCredential;
29-
use reqsign_0_9::AzureStorageLoader;
30-
use reqsign_0_9::AzureStorageSigner;
28+
use reqsign::AzureStorageCredential;
29+
use reqsign::AzureStorageLoader;
30+
use reqsign::AzureStorageSigner;
3131

3232
use crate::raw::*;
3333
use crate::*;

core/src/services/gcs/backend.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ use std::sync::Arc;
2323
use async_trait::async_trait;
2424
use http::StatusCode;
2525
use log::debug;
26-
use reqsign_0_9::GoogleCredentialLoader;
27-
use reqsign_0_9::GoogleSigner;
28-
use reqsign_0_9::GoogleTokenLoad;
29-
use reqsign_0_9::GoogleTokenLoader;
26+
use reqsign::GoogleCredentialLoader;
27+
use reqsign::GoogleSigner;
28+
use reqsign::GoogleTokenLoad;
29+
use reqsign::GoogleTokenLoader;
3030
use serde::Deserialize;
3131
use serde_json;
3232

core/src/services/gcs/core.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ use http::header::CONTENT_TYPE;
2626
use http::Request;
2727
use http::Response;
2828
use once_cell::sync::Lazy;
29-
use reqsign_0_9::GoogleCredentialLoader;
30-
use reqsign_0_9::GoogleSigner;
31-
use reqsign_0_9::GoogleToken;
32-
use reqsign_0_9::GoogleTokenLoader;
29+
use reqsign::GoogleCredentialLoader;
30+
use reqsign::GoogleSigner;
31+
use reqsign::GoogleToken;
32+
use reqsign::GoogleTokenLoader;
3333

3434
use super::uri::percent_encode_path;
3535
use crate::raw::*;

0 commit comments

Comments
 (0)