Skip to content

Releases: smithy-lang/smithy-rs

December 8th, 2023

08 Dec 22:41
Compare
Choose a tag to compare

New this release:

  • 🎉 (all, smithy-rs#3121, smithy-rs#3295) All generated docs now include docsrs labels when features are required
  • 🐛 (client, smithy-rs#3262) Loading native TLS trusted certs for the default HTTP client now only occurs if the default HTTP client is not overridden in config.
  • (client, smithy-rs#3277) Improve the error messages for when auth fails to select an auth scheme for a request.
  • (client, smithy-rs#3282) Fix documentation and examples on HyperConnector and HyperClientBuilder.
  • (client, aws-sdk-rust#990, @declanvk) Expose local socket address from ConnectionMetadata.
  • (all, smithy-rs#3294) Number TryInto implementations now succesfully convert from f64 to numeric types when no precision is lost. This fixes some deserialization issues where numbers like 25.0 were sent when Byte fields were expected.

Contributors
Thank you for your contributions! ❤

December 1st, 2023

01 Dec 18:55
Compare
Choose a tag to compare

New this release:

  • (client, smithy-rs#3278) RuntimeComponentsBuilder::push_identity_resolver is now deprecated since it does not replace the existing identity resolver of a given auth scheme ID. Use RuntimeComponentsBuilder::set_identity_resolver instead.

November 27th, 2023

27 Nov 23:37
Compare
Choose a tag to compare

New this release:

November 26th, 2023

26 Nov 23:23
Compare
Choose a tag to compare

AWS SDK changes only with this release

November 25th, 2023

25 Nov 14:22
Compare
Choose a tag to compare

AWS SDK changes only with this release

November 21st, 2023

21 Nov 19:07
Compare
Choose a tag to compare

Internal changes only with this release

November 17th, 2023

17 Nov 23:59
Compare
Choose a tag to compare
November 17th, 2023 Pre-release
Pre-release

Breaking Changes:

  • ⚠️🎉 (client, smithy-rs#3202) Add configurable stalled-stream protection for downloads.

    When making HTTP calls,
    it's possible for a connection to 'stall out' and emit no more data due to server-side issues.
    In the event this happens, it's desirable for the stream to error out as quickly as possible.
    While timeouts can protect you from this issue, they aren't adaptive to the amount of data
    being sent and so must be configured specifically for each use case. When enabled, stalled-stream
    protection will ensure that bad streams error out quickly, regardless of the amount of data being
    downloaded.

    Protection is enabled by default for all clients but can be configured or disabled.
    See this discussion for more details.

  • ⚠️ (client, smithy-rs#3222) Types/functions that were deprecated in previous releases were removed. Unfortunately, some of these deprecations
    were ignored by the Rust compiler (we found out later that #[deprecated] on pub use doesn't work). See
    the deprecations removal list for more details.

  • ⚠️ (all, smithy-rs#3236) Conversions for HTTP request in aws-smithy-runtime-api are now feature gated behind the http-02x feature

New this release:

  • 🎉 (all, smithy-rs#3183, @HakanVardarr) Add Display impl for DateTime.
  • 🐛 (client, smithy-rs#3229, aws-sdk-rust#960) Prevent multiplication overflow in backoff computation
  • (client, smithy-rs#3226) Types/functions that were previously #[doc(hidden)] in aws-smithy-async, aws-smithy-runtime-api, aws-smithy-runtime, aws-smithy-types, and the SDK crates are now visible. For those that are not intended to be used directly, they are called out in their docs as such.

Contributors
Thank you for your contributions! ❤

November 16th, 2023

16 Nov 23:34
Compare
Choose a tag to compare
November 16th, 2023 Pre-release
Pre-release

Breaking Changes:

  • ⚠️ (client, smithy-rs#3205) SignableRequest::apply_to_request in aws_sigv4 has been renamed apply_to_request_http0x

November 15th, 2023

15 Nov 23:17
Compare
Choose a tag to compare
November 15th, 2023 Pre-release
Pre-release

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! ❤

November 14th, 2023

14 Nov 19:25
Compare
Choose a tag to compare
November 14th, 2023 Pre-release
Pre-release

New this release:

  • 🎉 (all, smithy-rs#3173, smithy-rs#3171) Enable conversion from BuildError into SdkError & <service>::Error. This allows customers to write the following code:

    async fn do_a_thing(client: &Client) -> Result<SdkError<SomeOperationError>> {
        client.run_operation().complex_field(ComplexField::builder()
            .a("a")
            .b("b")
            .build()?
        ).send().await?;
    }

    Previously, ? could not be used in this position.