aws-smithy-eventstream
Event stream logic for smithy-rs.
0.61.2
86M downloads/mo
#887 most downloaded on crates.io
smithy-lang/smithy-rs
What this package is like to depend on
Last release 11 days ago
12 Aug 2026
Ships fairly regularly
a new release about every 5 weeks
Rarely documented
notes for 15 of 62 stable releases
6 versions withdrawn
withdrawn after publishing
5 years old
72 releases · first in 2021
12 releases in the last 12 months
see the full history below
Release timeline
72 releases · Oct 2021 to Aug 2026Releases
latest 60 of 72-
0.61.212 Aug 2026Nothing published for this version
-
0.61.107 Jul 2026Nothing published for this version
-
0.61.008 Dec 2023 withdrawnNothing published for this version
-
0.60.2111 Jun 2026Nothing published for this version
-
0.60.2002 Mar 2026Nothing published for this version
-
0.60.1910 Feb 2026Nothing published for this version
-
0.60.1801 Feb 2026Nothing published for this version
-
0.60.1731 Jan 2026Nothing published for this version
-
0.60.1629 Jan 2026Nothing published for this version
-
0.60.1528 Jan 2026Nothing published for this version
-
0.60.1408 Dec 2025Nothing published for this version
-
0.60.1330 Oct 2025Nothing published for this version
-
0.60.1206 Oct 2025Nothing published for this version
-
0.60.1118 Aug 2025Nothing published for this version
-
0.60.1017 Jul 2025Nothing published for this version
-
0.60.911 Jun 2025Nothing published for this version
-
0.60.810 Mar 2025Nothing published for this version
-
0.60.704 Mar 2025Nothing published for this version
-
0.60.614 Jan 2025Nothing published for this version
-
0.60.509 Sep 2024Nothing published for this version
-
0.60.424 Jan 2024Nothing published for this version
-
0.60.318 Jan 2024Nothing published for this version
-
0.60.210 Jan 2024Nothing published for this version
-
0.60.113 Dec 2023Nothing published for this version
-
0.60.018 Nov 2023Nothing published for this version
-
0.59.016 Nov 2023Nothing published for this version
-
0.58.015 Nov 2023Nothing published for this version
-
0.57.214 Nov 2023Nothing published for this version
-
0.57.101 Nov 2023Nothing published for this version
-
0.57.031 Oct 2023Nothing published for this version
-
0.56.122 Aug 2023Nothing published for this version
-
0.56.001 Aug 2023Nothing published for this version
-
0.55.323 May 2023Nothing published for this version
-
0.55.226 Apr 2023Nothing published for this version
-
0.55.111 Apr 2023Nothing published for this version
-
0.55.023 Mar 2023Nothing published for this version
-
0.54.424 Feb 2023Nothing published for this version
-
0.54.314 Feb 2023Nothing published for this version
-
0.54.207 Feb 2023 withdrawnNothing published for this version
-
0.54.125 Jan 2023Nothing published for this version
-
0.54.024 Jan 2023Nothing published for this version
-
0.53.112 Jan 2023Nothing published for this version
-
0.53.011 Jan 2023Nothing published for this version
-
0.52.012 Dec 2022Nothing published for this version
-
0.51.024 Oct 2022Nothing published for this version
-
0.50.013 Oct 2022 withdrawnNothing published for this version
-
0.49.020 Sep 2022Nothing published for this version
-
0.48.031 Aug 2022Nothing published for this version
-
0.47.004 Aug 2022Nothing published for this version
-
0.46.020 Jul 2022Nothing published for this version
-
0.45.029 Jun 2022Release notes
Open source →Breaking Changes:
- ⚠ (smithy-rs#932) Replaced use of
pin-projectwith equivalentpin-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 ofaws_smithy_http_tower::map_request::MapRequestFuture<F, E>. TheInnerandReadyvariants contained a single value. Each have been converted to struct variants and the inner value is now accessible by theinnerfield instead of the0field.
New this release:
- 🎉 (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 17
- 🐛 (smithy-rs#1505, @kiiadi) Fix issue with codegen on Windows where module names were incorrectly determined from filenames
Contributors Thank you for your contributions! ❤
- @kiiadi (smithy-rs#1505)
<!-- Do not manually edit this file, use
update-changelogs-->
- ⚠ (smithy-rs#932) Replaced use of
-
0.44.022 Jun 2022Release notes
Open source →New this release:
- (smithy-rs#1460) Fix a potential bug with
ByteStream's implementation offutures_core::stream::Streamand add helpful error messages for users on 32-bit systems that try to stream HTTP bodies larger than 4.29Gb. - 🐛 (smithy-rs#1427, smithy-rs#1465, smithy-rs#1459) Fix RustWriter bugs for
rustTemplateanddocsutility methods - 🐛 (aws-sdk-rust#554) Requests to Route53 that return
ResourceIds 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#1460) Fix a potential bug with
-
0.43.009 Jun 2022Release notes
Open source →New this release:
- 🎉 (smithy-rs#1381, @alonlud) Add ability to sign a request with all headers, or to change which headers are excluded from signing
- 🎉 (smithy-rs#1390) Add method
ByteStream::into_async_read. This makes it easy to convertByteStreams into a struct implementingtokio:io::AsyncRead. Available on crate featurert-tokioonly. - (smithy-rs#1404, @petrosagg) Add ability to specify a different rust crate name than the one derived from the package name
- (smithy-rs#1404, @petrosagg) Switch to RustCrypto's implementation of MD5.
Contributors Thank you for your contributions! ❤
- @alonlud (smithy-rs#1381)
- @petrosagg (smithy-rs#1404)
-
0.42.013 May 2022Release notes
Open source →Breaking Changes:
-
⚠🎉 (aws-sdk-rust#494, aws-sdk-rust#519) The
aws_smithy_http::byte_stream::bytestream_util::FsBuilderhas been updated to allow for easier creation of multi-part requests.FsBuilder::offsetis a new method allowing users to specify an offset to start reading a file from.FsBuilder::file_sizehas been reworked intoFsBuilder::lengthand is now used to specify the amount of data to read.
With these two methods, it's now simple to create a
ByteStreamthat will read a single "chunk" of a file. The example below demonstrates how you could divide a singleFileinto consecutive chunks to create multipleByteStreams.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:
- (smithy-rs#1352) Log a debug event when a retry is going to be peformed
- (smithy-rs#1332, @82marbag) Update generated crates to Rust 2021
Contributors Thank you for your contributions! ❤
- @82marbag (smithy-rs#1332)
-
-
0.41.029 Apr 2022Release notes
Open source →Breaking Changes:
- ⚠ (smithy-rs#1318) Bump MSRV from 1.56.1 to 1.58.1 per our "two versions behind" policy.
New this release:
- (smithy-rs#1307) Add new trait for HTTP body callbacks. This is the first step to enabling us to implement optional checksum verification of requests and responses.
- (smithy-rs#1330) Upgrade to Smithy 1.21.0
-
0.40.214 Apr 2022Release notes
Open source →Breaking Changes:
- ⚠ (aws-sdk-rust#490) Update all runtime crates to edition 2021
New this release:
- (smithy-rs#1262, @liubin) Fix link to Developer Guide in crate's README.md
- (smithy-rs#1301, @benesch) Update urlencoding crate to v2.1.0
Contributors Thank you for your contributions! ❤
- @benesch (smithy-rs#1301)
- @liubin (smithy-rs#1262)
-
0.39.017 Mar 2022Release notes
Open source →Breaking Changes:
-
⚠ (aws-sdk-rust#406)
aws_types::config::Confighas been renamed toaws_types:sdk_config::SdkConfig. This is to better differentiate it from service-specific configs likeaws_s3_sdk::Config. If you were creating shared configs withaws_config::load_from_env(), then you don't have to do anything. If you were directly referring to a shared config, update yourusestatements andstructnames.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
TimeoutConfigstruct. In this new version, timeouts have been broken up into several different config structs that are then collected in atimeout::Configstruct. 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:
- (smithy-rs#1225)
DynMiddlewareis nowcloneable - (smithy-rs#1257) HTTP request property bag now contains list of desired HTTP versions to use when making requests. This list is not currently used but will be in an upcoming update.
-
-
0.38.024 Feb 2022Release notes
Open source →Breaking Changes:
- ⚠ (smithy-rs#1197)
aws_smithy_types::retry::RetryKindhad itsNotRetryablevariant split intoUnretryableFailureandUnnecessary. If you implement theClassifyResponse, then successful responses need to returnUnnecessary, and failures that shouldn't be retried need to returnUnretryableFailure. - ⚠ (smithy-rs#1209)
aws_smithy_types::primitive::Encoderis now a struct rather than an enum, but its usage remains the same. - ⚠ (smithy-rs#1217)
ClientBuilderhelpersrustls()andnative_tls()now returnDynConnectorand 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()))(whereAdapteris inaws_smithy_client::hyper_ext).
New this release:
- 🐛 (smithy-rs#1197) Fixed a bug that caused clients to eventually stop retrying. The cross-request retry allowance wasn't being reimbursed upon receiving a successful response, so once this allowance reached zero, no further retries would ever be attempted.
- ⚠ (smithy-rs#1197)
-
0.37.021 Feb 2022Release notes
Open source →Breaking Changes:
-
⚠ (smithy-rs#1144) Some APIs required that timeout configuration be specified with an
aws_smithy_client::timeout::Settingsstruct while others required anaws_smithy_types::timeout::TimeoutConfigstruct. Both were equivalent. Nowaws_smithy_types::timeout::TimeoutConfigis used everywhere andaws_smithy_client::timeout::Settingshas been removed. Here's how to migrate code your code that depended ontimeout::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
typesmodule 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)
AggregatedBytesandByteStreamare now only re-exported if the service has streaming operations, andBlob/DateTimeare only re-exported if the service uses them. -
⚠ (smithy-rs#1130) MSRV increased from
1.54to1.56.1per our 2-behind MSRV policy.
New this release:
- (smithy-rs#1144)
MakeConnectorFn,HttpConnector, andHttpSettingshave been moved fromaws_config::provider_configtoaws_smithy_client::http_connector. This is in preparation for a later update that will change how connectors are created and configured. - (smithy-rs#1123) Refactor
Documentshape parser generation - (smithy-rs#1085) The
ClientandConfigre-exports now have their documentation inlined in the service docs
-
-
0.36.026 Jan 2022Release notes
Open source →New this release:
- (smithy-rs#1087) Improve docs on
Endpoint::{mutable, immutable} - (smithy-rs#1118) SDK examples now come from
awsdocs/aws-doc-sdk-examplesrather than fromsmithy-rs - (smithy-rs#1114, @mchoicpe-amazon) Provide SigningService creation via owned String
Contributors Thank you for your contributions! ❤
- @mchoicpe-amazon (smithy-rs#1114)
- (smithy-rs#1087) Improve docs on