chore: Extract http-client-tls crate (#26895)

http-client pulled in rustls which in turn meant that gpui depended on
rustls/aws-lc-sys. This commit extracts http-client-tls crate to
separate the http-client and tls dependencies.

Closes #ISSUE

Release Notes:

- N/A
This commit is contained in:
Piotr Osiewicz 2025-03-17 03:36:37 +01:00 committed by GitHub
parent d5bb12631a
commit 8f560daec2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 59 additions and 26 deletions

View file

@ -25,5 +25,3 @@ log.workspace = true
serde.workspace = true
serde_json.workspace = true
url.workspace = true
rustls.workspace = true
rustls-platform-verifier.workspace = true

View file

@ -8,33 +8,14 @@ pub use http::{self, Method, Request, Response, StatusCode, Uri};
use futures::future::BoxFuture;
use http::request::Builder;
use rustls::ClientConfig;
use rustls_platform_verifier::ConfigVerifierExt;
#[cfg(feature = "test-support")]
use std::fmt;
use std::{
any::type_name,
sync::{Arc, Mutex, OnceLock},
sync::{Arc, Mutex},
};
pub use url::Url;
static TLS_CONFIG: OnceLock<rustls::ClientConfig> = OnceLock::new();
pub fn tls_config() -> ClientConfig {
TLS_CONFIG
.get_or_init(|| {
// rustls uses the `aws_lc_rs` provider by default
// This only errors if the default provider has already
// been installed. We can ignore this `Result`.
rustls::crypto::aws_lc_rs::default_provider()
.install_default()
.ok();
ClientConfig::with_platform_verifier()
})
.clone()
}
#[derive(Default, Debug, Clone, PartialEq, Eq, Hash)]
pub enum RedirectPolicy {
#[default]