Releases: smithy-lang/smithy-rs
October 6th, 2025
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! β€
October 2nd, 2025
New this release:
-
π (server) Fix bug where servers rejected
application/vnd.amazon.evenstream
ACCEPT header for RPCv2CborThis change allows this header while also allowing
application/cbor
for backwards compatibility.
October 1st, 2025
New this release:
- π (client, smithy-rs#4299, @greenwoodcm) Added a new
then_compute_output
toaws-smithy-mocks
rule builder that allows using the input type when computing a mocked response, e.g.// Return a computed output based on the input let compute_rule = mock!(Client::get_object) .then_compute_output(|req| { let key = req.key().unwrap_or("unknown"); GetObjectOutput::builder() .body(ByteStream::from_static(format!("content for {}", key).as_bytes())) .build() });
- π (client, smithy-rs#4226, @haydenbaker) Fixed problematic assertion on HttpApiKeyAuthTrait
scheme
, which was causing client-codegen to fail when the correct settings for api-key based auth were set.
Contributors
Thank you for your contributions! β€
September 10th, 2025
New this release:
- π (client, smithy-rs#4274) The
HickoryDnsResolver
andTokioDnsResolver
were notClone
making it impossible to use them in the http_client builder'sbuild_with_resolver
method.
August 28th, 2025
New this release:
- π (client, smithy-rs#4274) Add a new crate,
aws-smithy-dns
that contains aHickoryDnsResolver
. This wraps ahickory_resolver::Resolver
and provides some minimal configuration options (timeouts, retries, etc.) Instructions for overriding the DNS resolver on your HTTP client can be found in our documentation at https://docs.aws.amazon.com/sdk-for-rust/latest/dg/http.html#overrideDns - π (client, smithy-rs#4282) Set the
pool_timer
for the default Hyper client. This is required to allow thepool_idle_timeout
to work. Now idle connections will be released by the pool after 90 seconds. - (client, smithy-rs#4263) Make
TokenBucket
andClientRateLimiter
configurable throughRetryPartition
.
August 18th, 2025
New this release:
- π (client, aws-sdk-rust#169) Add support for proxy environment variables (
HTTP_PROXY,
HTTPS_PROXY,
ALL_PROXY,
NO_PROXY). Service clients will now automatically respect these proxy environment variables on the latest
BehaviorVersion. Older behavior versions do not automatically detect these environment variables and will require manually building a
aws_smithy_http_client::Connector` with a proxy config explicitly set to use this feature. - π (client, @WillChilds-Klein) Enable rustls post-quantum by default.
- (client) fix
aws-smithy-eventstream
featurederive-arbitrary
onarbitrary
>= 1.4.2
Contributors
Thank you for your contributions! β€
August 13th, 2025
New this release:
- π (client) pin crc-fast to <1.4 to workaround SIGILL
August 11th, 2025
New this release:
-
π (client, smithy-rs#4208) Add the ability to insert
hints.mostly-unused = true
in Cargo.toml. Enable this hint for the below crates:- aws-sdk-cloudformation
- aws-sdk-dynamodb
- aws-sdk-ec2
- aws-sdk-s3
- aws-sdk-sns
- aws-sdk-sqs
- aws-sdk-ssm
- aws-sdk-sts
See more information about this hint at https://blog.rust-lang.org/inside-rust/2025/07/15/call-for-testing-hint-mostly-unused/
-
π (client, smithy-rs#4208, @joshtriplett) Enable
hints.mostly-unused = true
foraws-sdk-lambda
(taking a release
build from 57s to 40s) andaws-sdk-rds
(taking a release build from 1m34s to
49s).
Contributors
Thank you for your contributions! β€
August 4th, 2025
New this release:
- π (all, @Dorenavant) Add EnumSection to allow decorators to modify enum member attributes
- π (client, smithy-rs#4227) Fix canonical request sort order
Contributors
Thank you for your contributions! β€
July 25th, 2025
New this release:
- π (client, smithy-rs#4232) Add fallback equality on no auth
AuthSchemeId
for backward compatibility, treatingAuthSchemeId::from("no_auth")
(legacy) andAuthSchemeId::from("noAuth")
(updated) as equivalent.