NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3699 most downloaded on crates.io
Conversion of types from aws-smithy-types to other libraries.
Last release 3 months ago
07 Jul 2026
Ships unpredictably
gaps range from 8 days to 12 months
Some releases are documented
notes for 15 of 53 stable releases
5 versions withdrawn
withdrawn after publishing
5 years old
59 releases · first in 2021
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
🎉 (smithy-rs#1411, smithy-rs#1167) Upgrade to Gradle 7. This change is not a breaking change, however, users of smithy-rs will need to switch to JDK 1…
Breaking Changes:
pin-project with equivalent pin-project-lite. For pinned enum tuple variants and tuple structs, this
change requires that we switch to using enum struct variants and regular structs. Most of the structs and enums that
were updated had only private fields/variants and so have the same public API. However, this change does affect the
public API of aws_smithy_http_tower::map_request::MapRequestFuture<F, E>. The Inner and Ready variants contained a
single value. Each have been converted to struct variants and the inner value is now accessible by the inner field
instead of the 0 field.New this release:
Contributors Thank you for your contributions! ❤
update-changelogs -->(smithy-rs#1460) Fix a potential bug with ByteStream's implementation of futures_core::Stream and add helpful error messages for users on 32-bit syste
New this release:
ByteStream's implementation of futures_core::stream::Stream and add helpful error messages
for users on 32-bit systems that try to stream HTTP bodies larger than 4.29Gb.rustTemplate and docs utility methodsResourceIds often come with a prefix. When passing those IDs directly into another
request, the request would fail unless they manually stripped the prefix. Now, when making a request with a prefixed ID,
the prefix will be stripped automatically.🎉 (smithy-rs#1381, @alonlud) Add ability to sign a request with all headers, or to change which headers are excluded from signing
New this release:
ByteStream::into_async_read. This makes it easy to convert ByteStreams into a struct implementing tokio:io::AsyncRead. Available on crate feature rt-tokio only.Contributors Thank you for your contributions! ❤
⚠🎉 (aws-sdk-rust#494, aws-sdk-rust#519) The aws_smithy_http::byte_stream::bytestream_util::FsBuilder has been updated to allow for easier creation of
Breaking Changes:
⚠🎉 (aws-sdk-rust#494, aws-sdk-rust#519) The aws_smithy_http::byte_stream::bytestream_util::FsBuilder has been updated to allow for easier creation of
multi-part requests.
FsBuilder::offset is a new method allowing users to specify an offset to start reading a file from.FsBuilder::file_size has been reworked into FsBuilder::length and is now used to specify the amount of data to read.With these two methods, it's now simple to create a ByteStream that will read a single "chunk" of a file. The example
below demonstrates how you could divide a single File into consecutive chunks to create multiple ByteStreams.
let example_file_path = Path::new("/example.txt");
let example_file_size = tokio::fs::metadata(&example_file_path).await.unwrap().len();
let chunks = 6;
let chunk_size = file_size / chunks;
let mut byte_streams = Vec::new();
for i in 0..chunks {
let length = if i == chunks - 1 {
// If we're on the last chunk, the length to read might be less than a whole chunk.
// We substract the size of all previous chunks from the total file size to get the
// size of the final chunk.
file_size - (i * chunk_size)
} else {
chunk_size
};
let byte_stream = ByteStream::read_from()
.path(&file_path)
.offset(i * chunk_size)
.length(length)
.build()
.await?;
byte_streams.push(byte_stream);
}
for chunk in byte_streams {
// Make requests to a service
}
New this release:
Contributors Thank you for your contributions! ❤
⚠ (smithy-rs#1318) Bump MSRV from 1.56.1 to 1.58.1 per our "two versions behind" policy.
Breaking Changes:
New this release:
⚠ (aws-sdk-rust#490) Update all runtime crates to edition 2021
Breaking Changes:
New this release:
Contributors Thank you for your contributions! ❤
⚠ (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)Your coding agent can read these notes before it upgrades. Set up the MCP server →