7 releases
0.1.8 | Apr 17, 2024 |
---|---|
0.1.7 | Dec 21, 2023 |
#251 in HTTP client
39KB
938 lines
hyper-client-io-wizard
Documentation | Crates.io | Repository
Why hyper-client-io-wizard?
This project's goal is to provide a simple and straightforward connection builder for hyper v1 HTTP client hyper::client::conn.
Features
Currently supports following configurations:
- Direct connections (similar to hyper_util::client::legacy)
- Socks5 proxy (based on async-socks5 crate)
- TLS connections (based on tokio-rustls crate)
- Customizable DNS resolving (based on hickory-resolver crate)
Usage
See the examples
folder in the repository for more examples, i.e. primitive-curl
command line utility.
let io = Io::resolver_setup()
.system()
.connection_setup(target_uri)?
.connect_timeout(Some(Duration::from_millis(1000)))
.socks5_proxy_setup(proxy_uri)
.tls_setup()
.await?
.native_roots()?
.enable_all_versions()
.establish()
.await?;
let (mut request_sender, connection) = conn::http2::Builder::new(TokioExecutor::new())
.handshake(io.stream)
.await?;
tokio::spawn(connection);
let response = request_sender.send_request(request).await?;
...
License
This project is licensed under MIT
.
Dependencies
~19–29MB
~530K SLoC