NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #657 most downloaded on crates.io
Token streaming JSON parser for smithy-rs.
Last release 21 days ago
15 Sep 2026
Ships fairly regularly
a new release about every 5 weeks
Rarely documented
notes for 10 of the last 60 stable releases
7 versions withdrawn
withdrawn after publishing
5 years old
76 releases · first in 2021
One column per quarter.
⚠ (aws-sdk-rust#406) aws_types::Config has been renamed to aws_types:sdk_config::SdkConfig. This is to better differentiate it from service-specific c
Breaking Changes:
⚠ (aws-sdk-rust#406) aws_types::config::Config has been renamed to aws_types:sdk_config::SdkConfig. This is to better differentiate it
from service-specific configs like aws_s3_sdk::Config. If you were creating shared configs with
aws_config::load_from_env(), then you don't have to do anything. If you were directly referring to a shared config,
update your use statements and struct names.
Before:
use aws_types::config::Config;
fn main() {
let config = Config::builder()
// config builder methods...
.build()
.await;
}
After:
use aws_types::SdkConfig;
fn main() {
let config = SdkConfig::builder()
// config builder methods...
.build()
.await;
}
⚠ (smithy-rs#724) Timeout configuration has been refactored a bit. If you were setting timeouts through environment variables or an AWS profile, then you shouldn't need to change anything. Take note, however, that we don't currently support HTTP connect, read, write, or TLS negotiation timeouts. If you try to set any of those timeouts in your profile or environment, we'll log a warning explaining that those timeouts don't currently do anything.
If you were using timeouts programmatically,
you'll need to update your code. In previous versions, timeout configuration was stored in a single TimeoutConfig
struct. In this new version, timeouts have been broken up into several different config structs that are then collected
in a timeout::Config struct. As an example, to get the API per-attempt timeout in previous versions you would access
it with <your TimeoutConfig>.api_call_attempt_timeout() and in this new version you would access it with
<your timeout::Config>.api.call_attempt_timeout(). We also made some unimplemented timeouts inaccessible in order to
avoid giving users the impression that setting them had an effect. We plan to re-introduce them once they're made
functional in a future update.
New this release:
DynMiddleware is now cloneable⚠ (smithy-rs#1197) aws_smithy_types::RetryKind had its NotRetryable variant split into UnretryableFailure and Unnecessary. If you implement the Classi
Breaking Changes:
aws_smithy_types::retry::RetryKind had its NotRetryable variant split into UnretryableFailure and Unnecessary. If you implement the ClassifyResponse, then successful responses need to return Unnecessary, and failures that shouldn't be retried need to return UnretryableFailure.aws_smithy_types::primitive::Encoder is now a struct rather than an enum, but its usage remains the same.ClientBuilder helpers rustls() and native_tls() now return DynConnector and use dynamic dispatch rather than returning their concrete connector type that would allow static dispatch. If static dispatch is desired, then manually construct a connector to give to the builder. For example, for rustls: builder.connector(Adapter::builder().build(aws_smithy_client::conns::https())) (where Adapter is in aws_smithy_client::hyper_ext).New this release:
⚠ (smithy-rs#1144) Some APIs required that timeout configuration be specified with an aws_smithy_client::Settings struct while others required an aws_
Breaking Changes:
⚠ (smithy-rs#1144) Some APIs required that timeout configuration be specified with an aws_smithy_client::timeout::Settings struct while
others required an aws_smithy_types::timeout::TimeoutConfig struct. Both were equivalent. Now aws_smithy_types::timeout::TimeoutConfig
is used everywhere and aws_smithy_client::timeout::Settings has been removed. Here's how to migrate code your code that
depended on timeout::Settings:
The old way:
let timeout = timeout::Settings::new()
.with_connect_timeout(Duration::from_secs(1))
.with_read_timeout(Duration::from_secs(2));
The new way:
// This example is passing values, so they're wrapped in `Option::Some`. You can disable a timeout by passing `None`.
let timeout = TimeoutConfig::new()
.with_connect_timeout(Some(Duration::from_secs(1)))
.with_read_timeout(Some(Duration::from_secs(2)));
⚠ (smithy-rs#1085) Moved the following re-exports into a types module for all services:
<service>::AggregatedBytes -> <service>::types::AggregatedBytes<service>::Blob -> <service>::types::Blob<service>::ByteStream -> <service>::types::ByteStream<service>::DateTime -> <service>::types::DateTime<service>::SdkError -> <service>::types::SdkError⚠ (smithy-rs#1085) AggregatedBytes and ByteStream are now only re-exported if the service has streaming operations,
and Blob/DateTime are only re-exported if the service uses them.
⚠ (smithy-rs#1130) MSRV increased from 1.54 to 1.56.1 per our 2-behind MSRV policy.
New this release:
MakeConnectorFn, HttpConnector, and HttpSettings have been moved from aws_config::provider_config to
aws_smithy_client::http_connector. This is in preparation for a later update that will change how connectors are
created and configured.Document shape parser generationClient and Config re-exports now have their documentation inlined in the service docs(smithy-rs#1087) Improve docs on Endpoint::{mutable, immutable}
New this release:
Endpoint::{mutable, immutable}awsdocs/aws-doc-sdk-examples rather than from smithy-rsContributors Thank you for your contributions! ❤
_Changes only impact generated AWS SDK_
Changes only impact generated AWS SDK
_Changes only impact generated AWS SDK_
Changes only impact generated AWS SDK
🐛 (smithy-rs#1054, aws-sdk-rust#391) Fix critical paginator bug where an empty outputToken lead to a never ending stream.
New this release:
⚠ (smithy-rs#990) Codegen will no longer produce builders and clients with methods that take impl Into except for strings and boxed types.
Breaking Changes:
impl Into<T> except for strings and boxed types.aws_smithy_protocol_test::validate_headers was made more flexible but may require adjusting invocations slightly.New this release:
.into_paginator() and (when supported) .into_paginator().items() to enable paginating responses automatically. The paginator API should be considered in preview and is subject to change pending customer feedback.<a> tags with no href attribute to <pre> tagsContributors Thank you for your contributions! ❤
🐛 (smithy-rs#979) Make aws-smithy-client a required dependency in generated services.
New this release:
aws-smithy-client a required dependency in generated services.This release was a version bump to fix a version number conflict in crates.io
Add docs.rs metadata section to all crates to document all features
New this week
Improve docs on aws-smithy-client (smithy-rs#855)
New this week
aws-smithy-client (smithy-rs#855)SdkError now includes a variant TimeoutError for when a request times out (smithy-rs#885)Breaking Changes
pub use SdkSuccess removed from aws_smithy_client::hyper_ext. (smithy-rs#855)No changes since last release except for version bumping since older versions of the AWS SDK were failing to compile with the 0.27.0-alpha.2 version c
No changes since last release except for version bumping since older versions
of the AWS SDK were failing to compile with the 0.27.0-alpha.2 version chosen
for the previous release.
Members named builder on model structs were renamed to builder_value so that their accessors don't conflict with the existing builder() methods (smith
Breaking Changes
builder on model structs were renamed to builder_value so that their accessors don't conflict with the existing builder() methods (smithy-rs#842)New this week
aws-smithy-types (smithy-rs#834)aws-smithy-types (smithy-rs#834).make_operation(&config) is now an async function for all operations. Code should be updated to call .await. This will only impact users using the low
Breaking Changes
<operation>.make_operation(&config) is now an async function for all operations. Code should be updated to call .await. This will only impact users using the low-level API. (smithy-rs#797)New this week
version parameter is included in smithy-build.jsonmoduleDescription in smithy-build.json settings is now optionalhyper::Error(IncompleteMessage) will now be retried (smithy-rs#815)Unknown variant to support parsing variants that don't exist on the client. These variants will fail to serialize if they are ever included in requests.Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →