feat: add rustls Ring provider feature - #3068
Conversation
Allow applications to select Ring entirely through Cargo features without installing a process-global crypto provider.
|
Downstream validation: Nanocodex integrated this change at d45d0c3 to make ring its sole Rustls provider while preserving an embedding host process-level provider. gakonst/nanocodex#86 is merged; full Linux/macOS CI passed, and the six-target nightly published successfully from master SHA 4fd42ec168dce5b1dbacc1612055bc8755dc6505. We also ran cargo test --lib --no-default-features --features rustls-ring here (47 passed). The feature eliminated fresh-process CryptoProvider panics from direct reqwest Client construction and kept aws-lc out of the complete downstream graph. |
|
^ @seanmonstar any interest in getting this merged / released? |
|
oh nice i was just about to do this myself, am tired of manually having to install the ring crypto provider bc i don't want |
|
Well, at work we were trying to compile 32 bit windows Rust crate and it was failing to build with aws-lc-sys.. Well, trying to disable it in reqwest, let us to do downgrade to reqwest 0.12.X. I was also on my way to open PR, happy it's already done. |
Summary
rustls-ringfeature parallel torustlsandrustls-no-providerClientConfigwithout installing a process-globalCryptoProviderThis allows applications that standardize on Ring to select the provider through Cargo features, while preserving
rustlsas the AWS-LC-backed default andrustls-no-providerfor application-managed providers.Validation
cargo fmt --checkcargo check --no-default-features --features rustls-no-providercargo test --lib --no-default-features --features rustls-ring(47 passed)