Releases: smithy-lang/smithy-rs
June 30th, 2025
Internal changes only with this release
June 27th, 2025
New this release:
- 🐛 (client) Fix hyper 1.x connection refused errors not marked as retryable
- (client, smithy-rs#4186) Make Rpc V2 CBOR a compatible protocol for
awsQuery
usingawsQueryCompatible
trait
June 11th, 2025
Breaking Changes:
⚠️ (all, smithy-rs#4154) Update MSRV to 1.85.0- 🐛
⚠️ (server) Fixed SmithyRpcV2CBOR Router to properly respect case in service names, preventing routing failures for services with mixed-case service shape ID.
New this release:
- 🐛 (client, smithy-rs#4165) Fix default supported protocols incorrectly ordered in
ClientProtocolLoader
.
June 3rd, 2025
New this release:
- 🐛 (client, aws-sdk-rust#1272) Fix h2 GoAway errors not being retried by hyper legacy client
May 19th, 2025
New this release:
-
🎉 (client, smithy-rs#4135) Introduce a new
repeatedly()
function toaws-smithy-mocks
sequence builder to build mock rules that behave as an
infinite sequence.let rule = mock!(aws_sdk_s3::Client::get_object) .sequence() .http_status(503, None) .times(2) // repeat the last output twice before moving onto the next response in the sequence .output(|| GetObjectOutput::builder() .body(ByteStream::from_static(b"success")) .build() ) .repeatedly() // repeat the last output forever .build();
-
🐛 (client, aws-sdk-rust#1291) Removing the
optimize_crc32_auto
feature flag from thecrc-fast
dependency of theaws-smithy-checksums
crate since it was causing build issues for some customers. -
🐛 (client, smithy-rs#4137) Fix bug with enum codegen
When the first enum generated has the
@sensitive
trait the opaque type
underlying theUnknownVariant
inherits that sensitivity. This means that
it does not deriveDebug
. Since the module is only generated once this
causes a problem for non-sensitive enums that rely on the type deriving
Debug
so that they can also deriveDebug
. We manually addDebug
to
the module so it will always be there since theUnknownVariant
is not
modeled and cannot be@sensitive
. -
🐛 (client, smithy-rs#4135) fix simple rules behavior with
RuleMode::MatchAny
May 15th, 2025
New this release:
- 🐛 (all, smithy-rs#4132) Smithy unions that contain members named "unknown" will now codegen correctly
- (all, smithy-rs#4105, @FalkWoldmann) Replace once_cell with std equivalents
Contributors
Thank you for your contributions! ❤
May 9th, 2025
Breaking Changes:
⚠️ (all, smithy-rs#4120) Update MSRV to 1.82.0
New this release:
-
🐛🎉 (client, smithy-rs#4074, smithy-rs#3926) Promote
aws-smithy-mocks-experimental
toaws-smithy-mocks
. This crate is now a recommended tool for testing
generated SDK clients. This release includes several fixes as well as a new sequence builder API that can be
used to test more complex scenarios such as retries.use aws_sdk_s3::operation::get_object::GetObjectOutput; use aws_sdk_s3::config::retry::RetryConfig; use aws_smithy_types::byte_stream::ByteStream; use aws_smithy_mocks::{mock, mock_client, RuleMode}; #[tokio::test] async fn test_retry_behavior() { // Create a rule that returns 503 twice, then succeeds let retry_rule = mock!(aws_sdk_s3::Client::get_object) .sequence() .http_status(503, None) .times(2) // Return 503 HTTP status twice .output(|| GetObjectOutput::builder() // Finally return a successful output .body(ByteStream::from_static(b"success")) .build()) .build(); // Create a mocked client with the rule let s3 = mock_client!( aws_sdk_s3, RuleMode::Sequential, [&retry_rule], |client_builder| { client_builder.retry_config(RetryConfig::standard().with_max_attempts(3)) } ); // This should succeed after two retries let result = s3 .get_object() .bucket("test-bucket") .key("test-key") .send() .await .expect("success after retries"); // Verify the response let data = result.body.collect().await.expect("successful read").to_vec(); assert_eq!(data, b"success"); // Verify all responses were used assert_eq!(retry_rule.num_calls(), 3); }
-
🐛 (all, smithy-rs#4117) Fix a bug where fields that were initially annotated with the
required
trait and later updated to use theaddedDefault
trait were not serialized when their values matched the default, even when the values were explicitly set. With this fix, fields withaddedDefault
are now always serialized.
May 2nd, 2025
Internal changes only with this release
April 23rd, 2025
Breaking Changes:
⚠️ (client, smithy-rs#3776) AuthSchemeId no longer implements theCopy
trait. This type has primarily been used by the Smithy code generator, so this change is not expected to affect users of SDKs.
New this release:
- (all, smithy-rs#4050, @FalkWoldmann) Replace the
once_cell
crate with thestd
counterpart in Smithy runtime crates. - (client) remove redundant span attributes and improve log output format
Contributors
Thank you for your contributions! ❤
March 27th, 2025
Internal changes only with this release