Module aws_smithy_client::hyper_ext
source · Expand description
Implementation of SmithyConnector
for Hyper
The module provides Adapter
which enables using a hyper::Client
as the connector for a Smithy
Client
. For most use cases, this shouldn’t need to be used directly, but it is
available as an option.
Examples
Construct a Smithy Client with Hyper and Rustls
In the basic case, customers should not need to use this module. A default implementation of Hyper
with rustls
will be constructed during client creation. However, if you are creating a Smithy
Client
, directly, use the dyn_https_https()
method to match that default behavior:
use aws_smithy_client::Client;
let client = Client::builder()
.dyn_https_connector(Default::default())
.middleware(
// Replace this with your middleware type
tower::layer::util::Identity::default()
)
.build();
Use a Hyper client that uses WebPKI roots
A use case for where you may want to use the Adapter
is when settings Hyper client settings
that aren’t otherwise exposed by the Client
builder interface.
ⓘ
use std::time::Duration;
use aws_smithy_client::{Client, conns, hyper_ext};
use aws_smithy_client::erase::DynConnector;
use aws_smithy_client::http_connector::ConnectorSettings;
let https_connector = hyper_rustls::HttpsConnectorBuilder::new()
.with_webpki_roots()
.https_only()
.enable_http1()
.enable_http2()
.build();
let smithy_connector = hyper_ext::Adapter::builder()
// Optionally set things like timeouts as well
.connector_settings(
ConnectorSettings::builder()
.connect_timeout(Duration::from_secs(5))
.build()
)
.build(https_connector);
// Once you have a Smithy connector, use it to construct a Smithy client:
let client = Client::builder()
.connector(smithy_connector)
.middleware(tower::layer::util::Identity::default())
.build();
Structs
- Adapter from a
hyper::Client
to a connector usable by a SmithyClient
. - Builder for
hyper_ext::Adapter