Skip to content

Releases: smithy-lang/smithy-rs

February 16th, 2026

16 Feb 20:33

Choose a tag to compare

New this release:

  • 🎉 (server, smithy-rs#4494) Automatically add smithy.framework#ValidationException to operations with constrained inputs. Previously, users had to either set addValidationExceptionToConstrainedOperations: true in codegen settings or manually add ValidationException to each operation. Now this happens automatically unless a custom validation exception (a structure with the @validationException trait) is defined in the model. When using a custom validation exception, users must explicitly add it to each applicable operation. The addValidationExceptionToConstrainedOperations flag is deprecated.

February 10th, 2026

10 Feb 22:46

Choose a tag to compare

Breaking Changes:

  • ⚠️ (all) Upgrade MSRV to Rust 1.91.0.

February 1st, 2026

01 Feb 05:22

Choose a tag to compare

Breaking Changes:

  • ⚠️🎉 (client, smithy-rs#4454, smithy-rs#4467, aws-sdk-rust#1389) Enable retries by default for AWS SDK clients using BehaviorVersion::v2026_01_12() or later.

    Previously, retries were only enabled when constructing clients via aws_config::load_from_env(). Clients constructed directly using Client::from_conf() did not have retries enabled, which was inconsistent with AWS SDK behavior in other languages.

    This change affects AWS SDK clients constructed with Client::from_conf() when using BehaviorVersion::v2026_01_12() or BehaviorVersion::latest(). Generic Smithy clients (non-AWS) are not affected.

    To disable retries:

    let config = aws_sdk_s3::Config::builder()
        .retry_config(RetryConfig::disabled())
        // ...
        .build();

    For more context, see the discussion on retry behavior.

New this release:

  • 🎉 (client, smithy-rs#312, @AmitKulkarni23) Add support for Smithy bigInteger and bigDecimal types as string wrappers in aws-smithy-types, allowing users to parse with their preferred big number library.
  • 🎉 (all, smithy-rs#4484) All Smithy-rs crates, for both servers and clients, now use the 1.x version of
    the http crate for all internal processing. Utility methods are still provided
    for users to convert between SDK types and both of the http 0.x and 1.x types.
  • 🐛 (client, smithy-rs#4500) Fix JMESPath integer literal handling in waiters to support Smithy 1.66.0, which parses integer literals as Long instead of Double.

Contributors
Thank you for your contributions! ❤

January 14th, 2026

14 Jan 18:08

Choose a tag to compare

New this release:

  • (client) Add support for tracking observability business metrics (OBSERVABILITY_TRACING, OBSERVABILITY_OTEL_TRACING, OBSERVABILITY_OTEL_METRICS) in User-Agent headers when telemetry providers are configured.
  • 🐛 (client, smithy-rs#4459, @lnj) Updated the TokenBucket creation to initialize the bucket with the user-provided TimeSource from the Config.
    This fixes the bug in issue 4459 that caused failures
    in WASM since the TokenBucket was being created with a default SystemTime based TimeSource
  • 🐛 (client, @svix-jbrown) Update the lru dependency for aws-sdk-s3 and rust-runtime
  • (client, smithy-rs#4469, @greenwoodcm) Add support for aws-smithy-mocks interceptor to handle concurrent requests.
  • 🐛 (client, smithy-rs#4413) Deprecate NoAuthRuntimePlugin, which does not properly configure the auth scheme option resolver for noAuth, and introduce NoAuthRuntimePluginV2 that does.
  • (client) Update crc-fast to 1.9

Contributors
Thank you for your contributions! ❤

December 16th, 2025

16 Dec 22:36

Choose a tag to compare

New this release:

  • 🎉 (all, smithy-rs#4418, @AmitKulkarni23) Add expect_number_as_string_or_null function to aws-smithy-json that extracts JSON numbers as strings without converting to u64/i64/f64. This preserves arbitrary precision for BigInteger and BigDecimal support, preventing precision loss for numbers larger than standard numeric types can represent.
  • 🎉 (client, @annahay) Add token bucket success rewards, time based refill, fractional tokens

Contributors
Thank you for your contributions! ❤

December 8th, 2025

08 Dec 23:04

Choose a tag to compare

Breaking Changes:

  • 🐛⚠️ (server, smithy-rs#4400, smithy-rs#4397) Fix issue where SigV4 envelopes for EventStreams did not support the initial message. This is technically a breaking change but should not break consumers in practice since the
    resulting type has the same methods.

New this release:

  • 🎉 (client, @annahay) Added methods in token bucket to indicate if bucket is full or empty
  • 🐛 (client, smithy-rs#4427) Fix Content-Type and Accept headers for event streams in RPC v2 CBOR to set application/vnd.amazon.eventstream
  • 🐛 (client, aws-sdk-rust#1390, @arielb1) In legacy-rustls-ring, polyfill with_native_roots to use rustls_native_certs 0.8 to avoid
    RUSTSEC-2025-0134.
  • 🐛 (all, @arielby) Publish an MSRV for all packages

Contributors
Thank you for your contributions! ❤

November 20th, 2025

20 Nov 02:30

Choose a tag to compare

New this release:

Contributors
Thank you for your contributions! ❤

November 6th, 2025

06 Nov 17:55

Choose a tag to compare

New this release:

  • (client) Bump crc-fast version to 1.6.0
  • (client) Validate Region is a valid host label when constructing endpoints.

October 30th, 2025

30 Oct 18:35

Choose a tag to compare

Breaking Changes:

  • ⚠️🎉 (server, smithy-rs#4356) Parse EventStream signed-frames for servers marked with @sigv4.

    This is a breaking change, because events from SigV4 services are wrapped in a SignedEvent frame.

  • ⚠️ (all, smithy-rs#4367) Upgrade MSRV to Rust 1.88.0.

New this release:

  • 🐛🎉 (server, smithy-rs#4352, smithy-rs#4345) Update smithy-rs servers to support sending initial-response events over event streams.

    Prior to this change, event streams that had initial responses were unsupported. This change also adds a new codegen setting, alwaysSendEventStreamInitialResponse.

    When this setting is set to true, the generated server will unconditionally send initial-response objects, even when empty. This is required for compatibility with smithy-java as well as a few other clients.

    This setting defaults to false currently because smithy-rs based clients do not currently support this behavior.

    "codegen": {
      "alwaysSendEventStreamInitialResponse": true // default false
    }
  • 🎉 (all, @arielby) Include the protocol name in package.metadata.smithy.protocol in Cargo.toml
    to allow easily figuring out which protocol was used to generate a crate.

  • 🐛🎉 (client, smithy-rs#4349, @arielby) Make Hyper idle pool timeout configurable, and fix the bug where pool timeouts
    would not work if the client was built directly.

  • 🎉 (server, smithy-rs#4317, @jasgin) Adds validators and codegen support for the custom traits custom traits @validationException, @validationMessage,
    @validationFieldList, @validationFieldName, and @validationFieldMessage for defining a custom validation exception
    to use instead of smithy.framework#ValidationException.

  • 🐛 (client, smithy-rs#4346) Fix bug where httpQueryParams were silently dropped when no other query parameters were modeled.

  • 🐛 (server, smithy-rs#4344, smithy-rs#4325) Fix bug where servers did not attempt to parse an initial-request. initial-requests may be sent by clients both when they would contain valid data
    and when they are empty.

  • 🐛 (client, smithy-rs#4352, smithy-rs#4353) Update clients to allow initial-response events to be accepted on event streams, even when know modeled initial response exists.

    This is required for spec compliance, backwards compatibility, and compatibility with non-smithy-rs based servers that
    MAY unconditionally send initial-response messages.

  • 🐛 (client, smithy-rs#4265, smithy-rs#4189) Adds new with_test_defaults_v2() for all clients supporting region configuration which applies us-east-1 as default region if not set by user. This allows aws-smithy-mocks to work for non AWS SDK generated clients. Also clarify test-util feature requirement when using aws-smithy-mocks.

Contributors
Thank you for your contributions! ❤

October 6th, 2025

06 Oct 21:49

Choose a tag to compare

New this release:

  • 🎉 (server, smithy-rs#4321, @jasgin) Adds the custom traits @validationException, @validationMessage, @validationFieldList, @validationFieldName, and @validationFieldMessage
    for defining custom validation exceptions.

Contributors
Thank you for your contributions! ❤