reverse_proxy_service/
client.rs1use hyper::body::HttpBody;
5pub use hyper::client::{Builder, Client};
6
7use hyper::client::connect::Connect;
8pub use hyper::client::connect::HttpConnector;
9
10#[cfg(feature = "https")]
11#[cfg_attr(docsrs, doc(cfg(feature = "https")))]
12pub use hyper_tls::HttpsConnector;
13
14#[cfg(feature = "__rustls")]
15#[cfg_attr(docsrs, doc(cfg(feature = "rustls")))]
16pub use hyper_rustls::HttpsConnector as RustlsConnector;
17
18#[cfg(feature = "nativetls")]
19#[cfg_attr(docsrs, doc(cfg(feature = "nativetls")))]
20pub use hyper_tls::HttpsConnector as NativeTlsConnector;
21
22pub fn builder() -> Builder {
24 Builder::default()
25}
26
27pub fn http_default<B>() -> Client<HttpConnector, B>
29where
30 B: HttpBody + Send,
31 B::Data: Send,
32{
33 Builder::default().build_http()
34}
35
36#[cfg(any(feature = "https", feature = "nativetls"))]
38#[cfg_attr(docsrs, doc(cfg(any(feature = "https", feature = "nativetls"))))]
39#[inline]
40pub fn https_default<B>() -> Client<NativeTlsConnector<HttpConnector>, B>
41where
42 B: HttpBody + Send,
43 B::Data: Send,
44{
45 nativetls_default()
46}
47
48#[cfg(feature = "nativetls")]
50#[cfg_attr(docsrs, doc(cfg(feature = "nativetls")))]
51pub fn nativetls_default<B>() -> Client<NativeTlsConnector<HttpConnector>, B>
52where
53 B: HttpBody + Send,
54 B::Data: Send,
55{
56 Builder::default().build(NativeTlsConnector::new())
57}
58
59#[cfg(feature = "__rustls")]
87#[cfg_attr(docsrs, doc(cfg(feature = "rustls")))]
88pub fn rustls_default<B>() -> Client<RustlsConnector<HttpConnector>, B>
89where
90 B: HttpBody + Send,
91 B::Data: Send,
92{
93 let conn = hyper_rustls::HttpsConnectorBuilder::new();
94 #[cfg(feature = "rustls-webpki-roots")]
95 let conn = conn.with_webpki_roots();
96 #[cfg(all(not(feature = "rustls-webpki-roots"), feature = "rustls-native-roots"))]
97 let conn = conn.with_native_roots();
98 let conn = conn.https_only();
99 #[cfg(feature = "http1")]
100 let conn = conn.enable_http1();
101 #[cfg(feature = "rustls-http2")]
102 let conn = conn.enable_http2();
103 Builder::default().build(conn.build())
104}
105
106pub fn with_connector_default<C, B>(conn: C) -> Client<C, B>
108where
109 C: Connect + Clone,
110 B: HttpBody + Send,
111 B::Data: Send,
112{
113 Builder::default().build(conn)
114}