Skip to content

Commit 967fdc3

Browse files
authored
Remove parity features (Azure#2933)
Resolves Azure#2750 and replaces Azure#2811 by removing the `reqwest_rustls` feature which was there only to enable `reqwest/rustls-tls-native-roots-no-provider`. But using resolver v2 and newer, dependents can already do that by just taking a dependency on `reqwest` themselves to add that feature. In some cases, they may need to import `azure_core` with `default-features=false`, but passing a different `reqwest::Client` via our `TransportOptions` is easy. Not only will this scale better, but should help avoid opinionated feature selection that adversely impacts customers as with Azure#2750.
1 parent 88d6cd7 commit 967fdc3

File tree

16 files changed

+79
-184
lines changed

16 files changed

+79
-184
lines changed

.vscode/cspell.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,17 +60,18 @@
6060
"msrv",
6161
"newtonsoft",
6262
"oidc",
63-
"otel",
6463
"opentelemetry",
64+
"otel",
6565
"pageable",
6666
"pageables",
6767
"pkce",
6868
"pkcs",
69-
"pwsh",
7069
"posix",
70+
"pwsh",
7171
"reqwest",
7272
"runtimes",
7373
"rustup",
74+
"schannel",
7475
"seekable",
7576
"servicebus",
7677
"spector",
@@ -79,8 +80,8 @@
7980
"telemetered",
8081
"typespec",
8182
"undelete",
82-
"upvote",
8383
"uninlined",
84+
"upvote",
8485
"userdelegationkey",
8586
"vcpkg",
8687
"versionid",

Cargo.lock

Lines changed: 2 additions & 122 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ version = "0.7.0"
4949
path = "sdk/typespec/typespec_macros"
5050

5151
[workspace.dependencies.azure_core]
52+
default-features = false
5253
version = "0.28.0"
5354
path = "sdk/core/azure_core"
5455

@@ -117,7 +118,6 @@ quote = "1.0.37"
117118
rand = "0.9.1"
118119
rand_chacha = "0.9"
119120
reqwest = { version = "0.12.23", features = [
120-
"json",
121121
"stream",
122122
], default-features = false }
123123
rust_decimal.version = "1.37.2"

sdk/core/azure_core/Cargo.toml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ sha2 = { workspace = true, optional = true }
2828
tokio = { workspace = true, optional = true }
2929
tracing.workspace = true
3030
typespec = { workspace = true, features = ["http", "json"] }
31-
typespec_client_core = { workspace = true, features = [
31+
typespec_client_core = { workspace = true, default-features = false, features = [
3232
"derive",
3333
"http",
3434
"json",
@@ -54,18 +54,20 @@ default = [
5454
"reqwest",
5555
"reqwest_deflate",
5656
"reqwest_gzip",
57+
"reqwest_native_tls",
5758
]
5859
azurite_workaround = []
5960
debug = ["typespec_client_core/debug"]
6061
decimal = ["typespec_client_core/decimal"]
6162
hmac_openssl = ["dep:openssl"]
6263
hmac_rust = ["dep:sha2", "dep:hmac"]
6364
reqwest = ["typespec_client_core/reqwest"]
64-
reqwest_deflate = ["typespec_client_core/reqwest_deflate"]
65-
reqwest_gzip = ["typespec_client_core/reqwest_gzip"]
66-
reqwest_rustls = ["typespec_client_core/reqwest_rustls"]
65+
reqwest_deflate = ["reqwest", "typespec_client_core/reqwest_deflate"]
66+
reqwest_gzip = ["reqwest", "typespec_client_core/reqwest_gzip"]
67+
reqwest_native_tls = ["reqwest", "typespec_client_core/reqwest_native_tls"]
6768
test = ["typespec_client_core/test"]
6869
tokio = ["dep:tokio", "typespec_client_core/tokio"]
70+
wasm_bindgen = ["typespec_client_core/wasm_bindgen"]
6971
xml = ["typespec_client_core/xml"]
7072

7173
[lints]
@@ -80,8 +82,9 @@ features = [
8082
"reqwest",
8183
"reqwest_deflate",
8284
"reqwest_gzip",
83-
"reqwest_rustls",
85+
"reqwest_native_tls",
8486
"tokio",
87+
"wasm_bindgen",
8588
"xml",
8689
]
8790

sdk/core/azure_core/README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,16 @@ We guarantee that all client instance methods are thread-safe and independent of
4545
## Features
4646

4747
- `debug`: enables extra information for developers e.g., emitting all fields in `std::fmt::Debug` implementation.
48-
- `hmac_openssl`: configures HMAC using `openssl`.
49-
- `hmac_rust`: configures HMAC using pure Rust.
48+
- `decimal`: enables support for `rust_decimal::Decimal` type.
49+
- `derive`: enable derive macros e.g., `SafeDebug`.
50+
- `hmac_openssl`: enables HMAC signing using `openssl`. If both `hmac_openssl` and `hmac_rust` are enabled, `hmac_openssl` is used.
51+
- `hmac_rust`: enables HMAC signing using rust-native libraries `sha2` and `hmac`. If both `hmac_openssl` and `hmac_rust` are enabled, `hmac_openssl` is used.
5052
- `reqwest` (default): enables and sets `reqwest` as the default `HttpClient`. Enables `reqwest`'s `native-tls` feature.
5153
- `reqwest_deflate` (default): enables deflate compression for `reqwest`.
5254
- `reqwest_gzip` (default): enables gzip compression for `reqwest`.
53-
- `reqwest_rustls`: enables `reqwest`'s `rustls-tls-native-roots-no-provider` feature,
55+
- `reqwest_native-tls` (default): enables `reqwest`'s `native-tls` feature, which uses schannel on Windows and openssl elsewhere.
5456
- `tokio`: enables and sets `tokio` as the default async runtime.
57+
- `wasm_bindgen`: enables the async runtime for WASM.
5558
- `xml`: enables XML support.
5659

5760
## Examples

sdk/core/azure_core_opentelemetry/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ categories = ["api-bindings", "development-tools::debugging"]
1313
edition.workspace = true
1414
rust-version.workspace = true
1515

16+
[features]
17+
default = ["azure_core/default"]
18+
1619
[dependencies]
1720
azure_core.workspace = true
1821
opentelemetry.workspace = true

sdk/eventhubs/azure_messaging_eventhubs_checkpointstore_blob/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ tokio.workspace = true
3232
tracing-subscriber.workspace = true
3333

3434
[features]
35-
default = []
35+
default = ["azure_core/default"]

sdk/identity/azure_identity/Cargo.toml

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ serde.workspace = true
2323
time.workspace = true
2424
tokio = { workspace = true, optional = true }
2525
tracing.workspace = true
26-
typespec_client_core = { workspace = true, features = ["derive"] }
2726
url.workspace = true
2827

2928
[dev-dependencies]
@@ -37,19 +36,9 @@ tokio.workspace = true
3736
tracing-subscriber.workspace = true
3837

3938
[features]
40-
default = ["reqwest"]
41-
reqwest = ["azure_core/reqwest"]
42-
reqwest_rustls = ["azure_core/reqwest_rustls"]
39+
default = ["azure_core/default"]
4340
tokio = ["dep:tokio", "azure_core/tokio", "tokio/process"]
4441
client_certificate = ["openssl"]
4542

4643
[lints]
4744
workspace = true
48-
49-
[package.metadata.docs.rs]
50-
features = [
51-
"client_certificate",
52-
"reqwest",
53-
"reqwest_rustls",
54-
"tokio",
55-
]

sdk/keyvault/azure_security_keyvault_certificates/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ documentation = "https://docs.rs/azure_security_keyvault_certificates"
1313
keywords = ["sdk", "azure", "keyvault", "security", "certificates"]
1414
categories = ["api-bindings"]
1515

16+
[features]
17+
default = ["azure_core/default"]
18+
1619
[dependencies]
1720
async-trait = { workspace = true }
1821
azure_core = { workspace = true }

sdk/keyvault/azure_security_keyvault_keys/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ documentation = "https://docs.rs/azure_security_keyvault_keys"
1313
keywords = ["sdk", "azure", "keyvault", "security", "keys"]
1414
categories = ["api-bindings"]
1515

16+
[features]
17+
default = ["azure_core/default"]
18+
1619
[dependencies]
1720
async-trait = { workspace = true }
1821
azure_core = { workspace = true }

0 commit comments

Comments
 (0)