Unify TLS on rustls and upgrade remaining dependencies#433
Merged
thinkingfish merged 7 commits intomainfrom Mar 22, 2026
Merged
Unify TLS on rustls and upgrade remaining dependencies#433thinkingfish merged 7 commits intomainfrom
thinkingfish merged 7 commits intomainfrom
Conversation
- Remove boring, boring-sys, tokio-boring, openssl, openssl-src, openssl-sys, tokio-openssl, foreign-types-shared dependencies - Remove boringssl/openssl feature flags entirely - Switch pelikan-net to git dep (0.5.0 uses rustls natively) - Switch redis from tls-native-tls to tls-rustls - Switch sqlx from tls-native-tls to tls-rustls - Add rustls-pemfile for PEM loading in Connector - Rewrite src/net/mod.rs: eliminate ~250 lines of #[cfg]-gated dual-provider code, replace with single rustls implementation - Support mTLS, custom CA, verify_hostname, SNI config options Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…_env_var_v2 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
tonic-build split into tonic-prost-build (build dep) and tonic-prost (runtime dep for ProstCodec). compile_protos API unchanged. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…0.7 -> 0.8 RngCore removed from rand; replaced with Rng (trait object bound) and RngExt (extension methods like fill, random, random_range). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…escape) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
| #[cfg(feature = "openssl")] | ||
| OpensslTlsTcp(tokio_openssl::SslStream<tokio::net::TcpStream>), | ||
| Tls(tokio_rustls::client::TlsStream<tokio::net::TcpStream>), | ||
| } |
Check warning
Code scanning / clippy
large size difference between variants Warning
| #[cfg(feature = "openssl")] | ||
| OpensslTlsTcp(tokio_openssl::SslStream<tokio::net::TcpStream>), | ||
| Tls(tokio_rustls::client::TlsStream<tokio::net::TcpStream>), | ||
| } |
Check warning
Code scanning / clippy
large size difference between variants Warning
brayniac
reviewed
Mar 22, 2026
| @@ -0,0 +1,92 @@ | |||
| # Replace BoringSSL/OpenSSL with rustls | |||
Contributor
There was a problem hiding this comment.
Is this intended to be included?
brayniac
approved these changes
Mar 22, 2026
Contributor
brayniac
left a comment
There was a problem hiding this comment.
I think the plan markdown can be removed. Otherwise LGTM
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
#[cfg]-gated code and all C/C++ TLS dependenciesfrom_env_vartofrom_env_var_v2Changes
cdd83abrefactor: replace boringssl/openssl with rustls for all TLSc74e6dffix: migrate from deprecated CredentialProvider::from_env_var to from_env_var_v27221182chore: upgrade tonic 0.12 -> 0.14, prost 0.13 -> 0.14bc00933chore: upgrade rand 0.9 -> 0.10, rand_distr 0.5 -> 0.6, rand_xoshiro 0.7 -> 0.86ff43c0chore: switch ratelimit from git dep to crates.io 1.0.06afb3ccchore: remove unused dependencies (mio, pin-project, sha1, slab, url-escape)Test plan
cargo buildsucceeds with no feature flags (BoringSSL/OpenSSL features removed)verify_hostname: falseconfig option worksfrom_env_var_v2