v0.7.0 (February 18th, 2022)
Pre-release0.7.0 (February 18th, 2022)
Breaking Changes:
-
⚠ (smithy-rs#1144) The
aws_config::http_providermodule has been renamed toaws_config::http_credential_providerto better reflect its purpose. -
⚠ (smithy-rs#1144) Some APIs required that timeout configuration be specified with an
aws_smithy_client::timeout::Settingsstruct while
others required anaws_smithy_types::timeout::TimeoutConfigstruct. Both were equivalent. Nowaws_smithy_types::timeout::TimeoutConfig
is used everywhere andaws_smithy_client::timeout::Settingshas been removed. Here's how to migrate code your code that
depended ontimeout::Settings:The old way:
let timeout = timeout::Settings::new() .with_connect_timeout(Duration::from_secs(1)) .with_read_timeout(Duration::from_secs(2));
The new way:
// This example is passing values, so they're wrapped in `Option::Some`. You can disable a timeout by passing `None`. let timeout = TimeoutConfig::new() .with_connect_timeout(Some(Duration::from_secs(1))) .with_read_timeout(Some(Duration::from_secs(2)));
-
⚠ (smithy-rs#1144)
MakeConnectorFn,HttpConnector, andHttpSettingshave been moved fromaws_config::provider_configto
aws_smithy_client::http_connector. This is in preparation for a later update that will change how connectors are
created and configured.If you were using these structs/enums, you can migrate your old code by importing them from their new location.
-
⚠ (smithy-rs#1144) Along with moving
HttpConnectortoaws_smithy_client, theHttpConnector::make_connectormethod has been renamed to
HttpConnector::connector.If you were using this method, you can migrate your old code by calling
connectorinstead ofmake_connector. -
⚠ (smithy-rs#1085) Moved the following re-exports into a
typesmodule for all services:aws_sdk_<service>::AggregatedBytes->aws_sdk_<service>::types::AggregatedBytesaws_sdk_<service>::Blob->aws_sdk_<service>::types::Blobaws_sdk_<service>::ByteStream->aws_sdk_<service>::types::ByteStreamaws_sdk_<service>::DateTime->aws_sdk_<service>::types::DateTimeaws_sdk_<service>::SdkError->aws_sdk_<service>::types::SdkError
-
⚠ (smithy-rs#1085)
AggregatedBytesandByteStreamare now only re-exported if the service has streaming operations,
andBlob/DateTimeare only re-exported if the service uses them. -
⚠ (smithy-rs#1130) MSRV increased from
1.54to1.56.1per our 2-behind MSRV policy. -
⚠ (smithy-rs#1132) Fluent clients for all services no longer have generics, and now use
DynConnectorandDynMiddlewareto allow
for connector/middleware customization. This should only break references to the client that specified generic types for it.If you customized the AWS client's connector or middleware with something like the following:
let client = aws_sdk_s3::Client::with_config( aws_sdk_s3::client::Builder::new() .connector(my_custom_connector) // Connector customization .middleware(my_custom_middleware) // Middleware customization .default_async_sleep() .build(), config );
Then you will need to wrap the custom connector or middleware in
DynConnector
and
DynMiddleware
respectively:let client = aws_sdk_s3::Client::with_config( aws_sdk_s3::client::Builder::new() .connector(DynConnector::new(my_custom_connector)) // Now with `DynConnector` .middleware(DynMiddleware::new(my_custom_middleware)) // Now with `DynMiddleware` .default_async_sleep() .build(), config );
If you had functions that took a generic connector, such as the following:
fn some_function<C, E>(conn: C) -> Result<()> where C: aws_smithy_client::bounds::SmithyConnector<Error = E> + Send + 'static, E: Into<aws_smithy_http::result::ConnectorError> { // ... }
Then the generics and trait bounds will no longer be necessary:
fn some_function(conn: DynConnector) -> Result<()> { // ... }
Similarly, functions that took a generic middleware can replace the generic with
DynMiddlewareand
remove their trait bounds.
New this release:
- 🐛 (aws-sdk-rust#443) The
ProfileFileRegionProviderwill now respect regions set in chained profiles - (smithy-rs#1144) Several modules defined in the
aws_configcrate that used to be declared within another module's file have been moved to their own files. The moved modules arests,connector, anddefault_providers. They still have the exact same import paths. - 🐛 (smithy-rs#1129) Fix some docs links not working because they were escaped when they shouldn't have been
- (smithy-rs#1085) The
ClientandConfigre-exports now have their documentation inlined in the service docs - 🐛 (smithy-rs#1180) Fixed example showing how to use hardcoded credentials in
aws-types