Skip to content

November 15th, 2023

Pre-release
Pre-release

Choose a tag to compare

Breaking Changes:

  • ⚠️ (all, smithy-rs#3138, smithy-rs#3148) Upgrade guidance for HTTP Request/Response changes. HTTP request types moved, and a new HTTP response type was added.

  • ⚠️ (all, smithy-rs#3139) Message, Header, HeaderValue, and StrBytes have been moved to aws-smithy-types from aws-smithy-eventstream. Message::read_from and Message::write_to remain in aws-smithy-eventstream but they are converted to free functions with the names read_message_from and write_message_to respectively.

  • ⚠️ (client, smithy-rs#3100, smithy-rs#3114) An operation output that supports receiving events from stream now provides a new-type wrapping aws_smithy_http::event_stream::receiver::Receiver. The new-type supports the .recv() method whose signature is the same as aws_smithy_http::event_stream::receiver::Receiver::recv.

  • ⚠️ (all, smithy-rs#3151) Clients now require a BehaviorVersion to be provided. For must customers, latest is the best choice. This will be enabled automatically if you enable the behavior-version-latest cargo feature on aws-config or on an SDK crate. For customers that wish to pin to a specific behavior major version, it can be set in aws-config or when constructing the service client.

    async fn example() {
        // when creating a client
        let client = my_service::Client::from_conf(my_service::Config::builder().behavior_version(..).<other params>.build());
    }
  • ⚠️ (client, smithy-rs#3189) Remove deprecated error kind type aliases.

  • ⚠️ (client, smithy-rs#3191) Unhandled errors have been made opaque to ensure code is written in a future-proof manner. Where previously, you
    might have:

    match service_error.err() {
        GetStorageError::StorageAccessNotAuthorized(_) => { /* ... */ }
        GetStorageError::Unhandled(unhandled) if unhandled.code() == Some("SomeUnmodeledErrorCode") {
            // unhandled error handling
        }
        _ => { /* ... */ }
    }

    It should now look as follows:

    match service_error.err() {
        GetStorageError::StorageAccessNotAuthorized(_) => { /* ... */ }
        err if err.code() == Some("SomeUnmodeledErrorCode") {
            // unhandled error handling
        }
        _ => { /* ... */ }
    }

    The Unhandled variant should never be referenced directly.

New this release:

Contributors
Thank you for your contributions! ❤