Skip to content

Releases: awslabs/aws-sdk-rust

v0.13.0 (June 9th, 2022)

09 Jun 23:37

Choose a tag to compare

Pre-release

New this release:

  • πŸŽ‰ (smithy-rs#1390) Add method ByteStream::into_async_read. This makes it easy to convert ByteStreams into a struct implementing tokio:io::AsyncRead. Available on crate feature rt-tokio only.
  • πŸŽ‰ (smithy-rs#1356, @jszwedko) Add support for credential_process in AWS configs for fetching credentials from an external process.
  • (smithy-rs#1404, @petrosagg) Switch to RustCrypto's implementation of MD5.

Contributors
Thank you for your contributions! ❀

v0.12.0 (May 13th, 2022)

13 May 22:55

Choose a tag to compare

Pre-release

New this release:

  • (smithy-rs#1352) Log a debug event when a retry is going to be peformed

v0.11.0 (April 28th 2022)

29 Apr 18:49

Choose a tag to compare

Pre-release

Breaking Changes:

  • ⚠ (smithy-rs#1318) Bump MSRV from 1.56.1 to 1.58.1 per our "two versions behind" policy.

New this release:

  • πŸ› (smithy-rs#1344, @ryansb) Suppress irrelevant $HOME expansion warning when running in a Lambda Extension

Contributors
Thank you for your contributions! ❀

0.10.1 (April 14th, 2022)

14 Apr 21:58
3ff4157

Choose a tag to compare

Pre-release

Breaking Changes:

New this release:

Contributors
Thank you for your contributions! ❀

0.9.0 (March 17, 2022)

17 Mar 22:32

Choose a tag to compare

Pre-release

Breaking Changes:

  • ⚠ (aws-sdk-rust#406) aws_types::config::Config has been renamed to aws_types::sdk_config::SdkConfig. This is to better differentiate it
    from service-specific configs like aws_sdk_s3::Config. If you were creating shared configs with
    aws_config::load_from_env(), then you don't have to do anything. If you were directly referring to a shared config,
    update your use statements and struct names.

    Before:

    use aws_types::config::Config;
    
    fn main() {
        let config = Config::builder()
        // config builder methods...
        .build()
        .await;
    }

    After:

    // We re-export this type from the root module so it's easier to reference
    use aws_types::SdkConfig;
    
    fn main() {
        let config = SdkConfig::builder()
        // config builder methods...
        .build()
        .await;
    }
  • ⚠ (smithy-rs#724) Timeout configuration has been refactored a bit. If you were setting timeouts through environment variables or an AWS
    profile, then you shouldn't need to change anything. Take note, however, that we don't currently support HTTP connect,
    read, write, or TLS negotiation timeouts. If you try to set any of those timeouts in your profile or environment, we'll
    log a warning explaining that those timeouts don't currently do anything.

    If you were using timeouts programmatically,
    you'll need to update your code. In previous versions, timeout configuration was stored in a single TimeoutConfig
    struct. In this new version, timeouts have been broken up into several different config structs that are then collected
    in a timeout::Config struct. As an example, to get the API per-attempt timeout in previous versions you would access
    it with <your TimeoutConfig>.api_call_attempt_timeout() and in this new version you would access it with
    <your timeout::Config>.api.call_attempt_timeout(). We also made some unimplemented timeouts inaccessible in order to
    avoid giving users the impression that setting them had an effect. We plan to re-introduce them once they're made
    functional in a future update.

New this release:

0.8.0 (Februrary 24, 2022)

24 Feb 22:04

Choose a tag to compare

Pre-release

Breaking Changes:

  • ⚠ (smithy-rs#1216) aws-sigv4 no longer skips the content-length and content-type headers when signing with SignatureLocation::QueryParams

New this release:

  • πŸŽ‰ (smithy-rs#1220, aws-sdk-rust#462) Made it possible to change settings, such as load timeout, on the credential cache used by the DefaultCredentialsChain.
  • πŸ› (smithy-rs#1197) Fixed a bug that caused clients to eventually stop retrying. The cross-request retry allowance wasn't being reimbursed upon receiving a successful response, so once this allowance reached zero, no further retries would ever be attempted.
  • πŸ› (smithy-rs#1217, aws-sdk-rust#467) ClientBuilder helpers rustls() and native_tls() now return DynConnector so that they once again work when constructing clients with custom middleware in the SDK.
  • πŸ› (smithy-rs#1216, aws-sdk-rust#466) Fixed a bug in S3 that prevented the content-length and content-type inputs from being included in a presigned request signature. With this fix, customers can generate presigned URLs that enforce content-length and content-type for requests to S3.

v0.7.0 (February 18th, 2022)

21 Feb 15:30

Choose a tag to compare

Pre-release

0.7.0 (February 18th, 2022)

Breaking Changes:

  • ⚠ (smithy-rs#1144) The aws_config::http_provider module has been renamed to aws_config::http_credential_provider to better reflect its purpose.

  • ⚠ (smithy-rs#1144) Some APIs required that timeout configuration be specified with an aws_smithy_client::timeout::Settings struct while
    others required an aws_smithy_types::timeout::TimeoutConfig struct. Both were equivalent. Now aws_smithy_types::timeout::TimeoutConfig
    is used everywhere and aws_smithy_client::timeout::Settings has been removed. Here's how to migrate code your code that
    depended on timeout::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, and HttpSettings have been moved from aws_config::provider_config to
    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 HttpConnector to aws_smithy_client, the HttpConnector::make_connector method has been renamed to
    HttpConnector::connector.

    If you were using this method, you can migrate your old code by calling connector instead of make_connector.

  • ⚠ (smithy-rs#1085) Moved the following re-exports into a types module for all services:

    • aws_sdk_<service>::AggregatedBytes -> aws_sdk_<service>::types::AggregatedBytes
    • aws_sdk_<service>::Blob -> aws_sdk_<service>::types::Blob
    • aws_sdk_<service>::ByteStream -> aws_sdk_<service>::types::ByteStream
    • aws_sdk_<service>::DateTime -> aws_sdk_<service>::types::DateTime
    • aws_sdk_<service>::SdkError -> aws_sdk_<service>::types::SdkError
  • ⚠ (smithy-rs#1085) AggregatedBytes and ByteStream are now only re-exported if the service has streaming operations,
    and Blob/DateTime are only re-exported if the service uses them.

  • ⚠ (smithy-rs#1130) MSRV increased from 1.54 to 1.56.1 per our 2-behind MSRV policy.

  • ⚠ (smithy-rs#1132) Fluent clients for all services no longer have generics, and now use DynConnector and DynMiddleware to 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 DynMiddleware and
    remove their trait bounds.

New this release:

  • πŸ› (aws-sdk-rust#443) The ProfileFileRegionProvider will now respect regions set in chained profiles
  • (smithy-rs#1144) Several modules defined in the aws_config crate that used to be declared within another module's file have been moved to their own files. The moved modules are sts, connector, and default_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 Client and Config re-exports now have their documentation inlined in the service docs
  • πŸ› (smithy-rs#1180) Fixed example showing how to use hardcoded credentials in aws-types

0.6.0 (January 26, 2022)

26 Jan 20:23

Choose a tag to compare

Pre-release

New this release:

0.5.2 (January 20th, 2022)

21 Jan 00:54

Choose a tag to compare

Pre-release

New this release:

  • πŸ› (smithy-rs#1100) Internal: Update sync script to run gradle clean. This fixes an issue where codegen was not triggered when only properties changed.

v0.5.1 (January 19th, 2022)

20 Jan 02:25

Choose a tag to compare

Pre-release

New this release:

  • πŸ› (smithy-rs#1089) Fix dev-dependency cycle between aws-sdk-sso and aws-config