New this release:
- π (smithy-rs#979) Make
aws-smithy-client
a required dependency in generated services.
Breaking Changes:
-
β (smithy-rs#930) Runtime crates no longer have default features. You must now specify the features that you want when you add a dependency to your
Cargo.toml
.Upgrade guide
before after aws-smithy-async = "VERSION"
aws-smithy-async = { version = "VERSION", features = ["rt-tokio"] }
aws-smithy-client = "VERSION"
aws-smithy-client = { version = "VERSION", features = ["client-hyper", "rustls", "rt-tokio"] }
aws-smithy-http = "VERSION"
aws-smithy-http = { version = "VERSION", features = ["rt-tokio"] }
-
β (smithy-rs#940)
aws_smithy_client::Client::https()
has been renamed todyn_https()
. This is to clearly distinguish it fromrustls
andnative_tls
which do not use a boxed connector.
New this release:
- π (smithy-rs#957) Include non-service-specific examples in the generated root Cargo workspace
- π (smithy-rs#922, smithy-rs#914) Add changelog automation to sdk-lints
- π (aws-sdk-rust#317, smithy-rs#907) Removed spamming log message when a client was used without a sleep implementation, and improved context and call to action in logged messages around missing sleep implementations.
- (smithy-rs#923) Use provided
sleep_impl
for retries instead of using Tokio directly. - (smithy-rs#920) Fix typos in module documentation for generated crates
- π (aws-sdk-rust#301, smithy-rs#892) Avoid serializing repetitive
xmlns
attributes in generated XML serializers. - π (smithy-rs#953, aws-sdk-rust#331) Fixed a bug where certain characters caused a panic during URI encoding.
- This release was a version bump to fix a version number conflict in crates.io
New this week
- Add docs.rs metadata section to all crates to document all features
New this week
- Improve docs on
aws-smithy-client
(smithy-rs#855) - Fix http-body dependency version (smithy-rs#883, aws-sdk-rust#305)
SdkError
now includes a variantTimeoutError
for when a request times out (smithy-rs#885)- Timeouts for requests are now configurable. You can set separate timeouts for each individual request attempt and all attempts made for a request. (smithy-rs#831)
Breaking Changes
- (aws-smithy-client): Extraneous
pub use SdkSuccess
removed fromaws_smithy_client::hyper_ext
. (smithy-rs#855)
Breaking Changes
Several breaking changes around aws_smithy_types::Instant
were introduced by smithy-rs#849:
aws_smithy_types::Instant
from was renamed toDateTime
to avoid confusion with the standard library's monotonically non-decreasingInstant
type.DateParseError
inaws_smithy_types
has been renamed toDateTimeParseError
to match the type that's being parsed.- The
chrono-conversions
feature and associated functions have been moved to theaws-smithy-types-convert
crate.- Calls to
Instant::from_chrono
should be changed to:use aws_smithy_types::DateTime; use aws_smithy_types_convert::date_time::DateTimeExt; // For chrono::DateTime<Utc> let date_time = DateTime::from_chrono_utc(chrono_date_time); // For chrono::DateTime<FixedOffset> let date_time = DateTime::from_chrono_offset(chrono_date_time);
- Calls to
instant.to_chrono()
should be changed to:use aws_smithy_types_convert::date_time::DateTimeExt; date_time.to_chrono_utc();
- Calls to
Instant::from_system_time
andInstant::to_system_time
have been changed toFrom
trait implementations.- Calls to
from_system_time
should be changed to:DateTime::from(system_time); // or let date_time: DateTime = system_time.into();
- Calls to
to_system_time
should be changed to:SystemTime::from(date_time); // or let system_time: SystemTime = date_time.into();
- Calls to
- Several functions in
Instant
/DateTime
were renamed:Instant::from_f64
->DateTime::from_secs_f64
Instant::from_fractional_seconds
->DateTime::from_fractional_secs
Instant::from_epoch_seconds
->DateTime::from_secs
Instant::from_epoch_millis
->DateTime::from_millis
Instant::epoch_fractional_seconds
->DateTime::as_secs_f64
Instant::has_nanos
->DateTime::has_subsec_nanos
Instant::epoch_seconds
->DateTime::secs
Instant::epoch_subsecond_nanos
->DateTime::subsec_nanos
Instant::to_epoch_millis
->DateTime::to_millis
- The
DateTime::fmt
method is now fallible and fails when aDateTime
's value is outside what can be represented by the desired date format. - In
aws-sigv4
, theSigningParams
builder'sdate_time
setter was renamed totime
and changed to take astd::time::SystemTime
instead of a chrono'sDateTime<Utc>
.
New this week
β οΈ MSRV increased from 1.53.0 to 1.54.0 per our 3-behind MSRV policy.- Conversions from
aws_smithy_types::DateTime
toOffsetDateTime
from thetime
crate are now available from theaws-smithy-types-convert
crate. (smithy-rs#849) - Fixed links to Usage Examples (smithy-rs#862, @floric)
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.
Breaking Changes
- Members named
builder
on model structs were renamed tobuilder_value
so that their accessors don't conflict with the existingbuilder()
methods (smithy-rs#842)
New this week
- Fix epoch seconds date-time parsing bug in
aws-smithy-types
(smithy-rs#834) - Omit trailing zeros from fraction when formatting HTTP dates in
aws-smithy-types
(smithy-rs#834) - Generated structs now have accessor methods for their members (smithy-rs#842)
Breaking Changes
<operation>.make_operation(&config)
is now anasync
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
- SDK code generation now includes a version in addition to path parameters when the
version
parameter is included in smithy-build.json moduleDescription
insmithy-build.json
settings is now optional- Upgrade to Smithy 1.12
hyper::Error(IncompleteMessage)
will now be retried (smithy-rs#815)- Unions will optionally generate an
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. - Fix generated docs on unions. (smithy-rs#826)
Breaking Changes
β οΈ All Smithy runtime crates have been renamed to have anaws-
prefix. This may require code changes:- Cargo.toml changes:
smithy-async
->aws-smithy-async
smithy-client
->aws-smithy-client
smithy-eventstream
->aws-smithy-eventstream
smithy-http
->aws-smithy-http
smithy-http-tower
->aws-smithy-http-tower
smithy-json
->aws-smithy-json
smithy-protocol-test
->aws-smithy-protocol-test
smithy-query
->aws-smithy-query
smithy-types
->aws-smithy-types
smithy-xml
->aws-smithy-xml
- Rust
use
statement changes:smithy_async
->aws_smithy_async
smithy_client
->aws_smithy_client
smithy_eventstream
->aws_smithy_eventstream
smithy_http
->aws_smithy_http
smithy_http_tower
->aws_smithy_http_tower
smithy_json
->aws_smithy_json
smithy_protocol_test
->aws_smithy_protocol_test
smithy_query
->aws_smithy_query
smithy_types
->aws_smithy_types
smithy_xml
->aws_smithy_xml
- Cargo.toml changes:
New this week
- Filled in missing docs for services in the rustdoc documentation (smithy-rs#779)
Breaking Changes
β οΈ Therust-codegen
plugin now requires amoduleDescription
in the smithy-build.json file. This property goes into the generated Cargo.toml file as the package description. (smithy-rs#766)
New this week
- Add
RustSettings
toCodegenContext
(smithy-rs#616, smithy-rs#752) - Prepare crate manifests for publishing to crates.io (smithy-rs#755)
- Generated Cargo.toml files can now be customized (smithy-rs#766)
New this week
- π Re-add missing deserialization operations that were missing because of a typo in
HttpBoundProtocolGenerator.kt
Breaking changes
β οΈ MSRV increased from 1.52.1 to 1.53.0 per our 3-behind MSRV policy.β οΈ smithy_client::retry::Config
fieldmax_retries
is renamed tomax_attempts
- This also brings a change to the semantics of the field. In the old version, setting
max_retries
to 3 would mean that up to 4 requests could occur (1 initial request and 3 retries). In the new version, settingmax_attempts
to 3 would mean that up to 3 requests could occur (1 initial request and 2 retries).
- This also brings a change to the semantics of the field. In the old version, setting
β οΈ smithy_client::retry::Config::with_max_retries
method is renamed towith_max_attempts
β οΈ Several classes in the codegen module were renamed and/or refactored (smithy-rs#735):ProtocolConfig
becameCodegenContext
and moved tosoftware.amazon.smithy.rust.codegen.smithy
HttpProtocolGenerator
becameProtocolGenerator
and was refactored to rely on composition instead of inheritanceHttpProtocolTestGenerator
becameProtocolTestGenerator
Protocol
moved intosoftware.amazon.smithy.rust.codegen.smithy.protocols
SmithyConnector
andDynConnector
now returnConnectorError
instead ofBox<dyn Error>
. If you have written a custom connector, it will need to be updated to return the new error type. (#744)- The
DispatchError
variant ofSdkError
now containsConnectorError
instead ofBox<dyn Error>
(#744).
New this week
- π Fix an issue where
smithy-xml
may have generated invalid XML (smithy-rs#719) - Add
RetryConfig
struct for configuring retry behavior (smithy-rs#725) - π Fix error when receiving empty event stream messages (smithy-rs#736)
- π Fix bug in event stream receiver that could cause the last events in the response stream to be lost (smithy-rs#736)
- Add connect & HTTP read timeouts to IMDS, defaulting to 1 second
- IO and timeout errors from Hyper can now be retried (#744)
Contributors
Thank you for your contributions! β€οΈ
- @obi1kenobi (smithy-rs#719)
- @guyilin-amazon (smithy-rs#750)
New This Week
- Add IMDS credential provider to
aws-config
(smithy-rs#709) - Add IMDS client to
aws-config
(smithy-rs#701) - Add
TimeSource
toaws_types::os_shim_internal
(smithy-rs#701) - User agent construction is now
const fn
(smithy-rs#701) - Add
sts::AssumeRoleProvider
toaws-config
(smithy-rs#703, aws-sdk-rust#3) - Add IMDS region provider to
aws-config
(smithy-rs#715) - Add query param signing to the
aws-sigv4
crate (smithy-rs#707) - π Update event stream
Receiver
s to beSend
(smithy-rs#702, #aws-sdk-rust#224)
New This Week
- π Fixes issue where
Content-Length
header could be duplicated leading to signing failure (aws-sdk-rust#220, smithy-rs#697) - π Fixes naming collision during generation of model shapes that collide with
<operationname>Input
and<operationname>Output
(#699)
This release adds support for three commonly requested features:
- More powerful credential chain
- Support for constructing multiple clients from the same configuration
- Support for Transcribe streaming and S3 Select
In addition, this overhauls client configuration which lead to a number of breaking changes. Detailed changes are inline.
Current Credential Provider Support:
- Environment variables
- Web Identity Token Credentials
- Profile file support (partial)
- Credentials
- SSO
- ECS Credential source
- IMDS credential source
- Assume role from source profile
- Static credentials source profile
- WebTokenIdentity provider
- Region
- Credentials
- IMDS
- ECS
from_env
loaded region & credentials from environment variables only. Default sources have been removed from the generated
SDK clients and moved to the aws-config
package. Note that the aws-config
package default chain adds support for
profile file and web identity token profiles.
- Add a dependency on
aws-config
:[dependencies] aws-config = { git = "https://github.com/awslabs/aws-sdk-rust", tag = "v0.0.17-alpha" }
- Update your client creation code:
// `shared_config` can be used to construct multiple different service clients! let shared_config = aws_config::load_from_env().await; // before: <service>::Client::from_env(); let client = <service>::Client::new(&shared_config)
Config::build()
has been modified to not fallback to a default provider. Instead, use aws-config
to load and modify
the default chain. Note that when you switch to aws-config
, support for profile files and web identity tokens will be added.
-
Add a dependency on
aws-config
:[dependencies] aws-config = { git = "https://github.com/awslabs/aws-sdk-rust", tag = "v0.0.17-alpha" }
-
Update your client creation code:
fn before() { let region = aws_types::region::ChainProvider::first_try(<1 provider>).or_default_provider(); let config = <service>::Config::builder().region(region).build(); let client = <service>::Client::from_conf(&config); } async fn after() { use aws_config::meta::region::RegionProviderChain; let region_provider = RegionProviderChain::first_try(<1 provider>).or_default_provider(); // `shared_config` can be used to construct multiple different service clients! let shared_config = aws_config::from_env().region(region_provider).load().await; let client = <service>::Client::new(&shared_config) }
All credential providers that were in aws-auth-providers
have been moved to aws-config
. Unless you have a specific use case
for a specific credential provider, you should use the default provider chain:
let shared_config = aws_config::load_from_env().await;
let client = <service>::Client::new(&shared_config);
AsyncProvideCredentials
has been renamed to ProvideCredentials
. The trait has been moved from aws-auth
to aws-types
.
The original ProvideCredentials
trait has been removed. The return type has been changed to by a custom future.
For synchronous use cases:
use aws_types::credentials::{ProvideCredentials, future};
#[derive(Debug)]
struct CustomCreds;
impl ProvideCredentials for CustomCreds {
fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials<'a>
where
Self: 'a,
{
// if your credentials are synchronous, use `::ready`
// if your credentials are loaded asynchronously, use `::new`
future::ProvideCredentials::ready(todo!()) // your credentials go here
}
}
For asynchronous use cases:
use aws_types::credentials::{ProvideCredentials, future, Result};
#[derive(Debug)]
struct CustomAsyncCreds;
impl CustomAsyncCreds {
async fn load_credentials(&self) -> Result {
Ok(Credentials::from_keys("my creds...", "secret", None))
}
}
impl ProvideCredentials for CustomCreds {
fn provide_credentials<'a>(&'a self) -> future::ProvideCredentials<'a>
where
Self: 'a,
{
future::ProvideCredentials::new(self.load_credentials())
}
}
Breaking Changes
-
Credential providers from
aws-auth-providers
have been moved toaws-config
(#678) -
AsyncProvideCredentials
has been renamed toProvideCredentials
. The original non-async provide credentials has been removed. See the migration guide above. -
<sevicename>::from_env()
has been removed (#675). A drop-in replacement is available:- Add a dependency on
aws-config
:[dependencies] aws-config = { git = "https://github.com/awslabs/aws-sdk-rust", tag = "v0.0.17-alpha" }
- Update your client creation code:
let client = <service>>::Client::new(&aws_config::load_from_env().await)
- Add a dependency on
-
ProvideRegion
has been moved toaws_config::meta::region::ProvideRegion
. (#675) -
aws_types::region::ChainProvider
has been moved toaws_config::meta::region::RegionProviderChain
(#675). -
ProvideRegion
is now asynchronous. Code that calledprovider.region()
must be changed toprovider.region().await
. -
<awsservice>::Config::builder()
will not load a default region. To preserve previous behavior:- Add a dependency on
aws-config
:[dependencies] aws-config = { git = "https://github.com/awslabs/aws-sdk-rust", tag = "v0.0.17-alpha" }
-
let shared_config = aws_config::load_from_env().await; let config = <service>::config::Builder::from(&shared_config).<other builder modifications>.build();
- Add a dependency on
-
Request
andResponse
insmithy_http::operation
now useSharedPropertyBag
instead ofArc<Mutex<PropertyBag>>
. Use theacquire
andacquire_mut
methods to get a reference to the underlyingPropertyBag
to access properties. (#667)
New this week
- π Add profile file provider for region (#594, #682)
- π Add support for shared configuration between multiple services (#673)
- π Add support for Transcribe
StartStreamTranscription
and S3SelectObjectContent
operations (#667) - π Add support for new MemoryDB service (#677)
- Improve documentation on collection-aware builders (#664)
- Update AWS SDK models (#677)
- π Fix sigv4 signing when request ALPN negotiates to HTTP/2. (#674)
- π Fix integer size on S3
Size
(#679, aws-sdk-rust#209) - π Fix JSON parsing issue for modeled empty structs (#683, aws-sdk-rust#212)
- π Fix acronym case disagreement between FluentClientGenerator and HttpProtocolGenerator type aliasing (#668)
Internal Changes
- Add Event Stream support for restJson1 and restXml (#653, #667)
- Add NowOrLater future to smithy-async (#672)
New This Week
- π Add Chime Identity, Chime Messaging, and Snow Device Management support (#657)
- π Add profile file credential provider implementation. This implementation currently does not support credential sources for assume role providers other than environment variables. (#640)
- π Add support for WebIdentityToken providers via profile & environment variables. (#654)
- π Fix name collision that occurred when a model had both a union and a structure named
Result
(#643) - π Fix STS Assume Role with WebIdentity & Assume role with SAML to support clients with no credentials provided (#652)
- Update AWS SDK models (#657)
- Add initial implementation of a default provider chain. (#650)
Internal Changes
- Update sigv4 tests to work around behavior change in httparse 1.5. (#656)
- Remove Bintray/JCenter source from gradle build. (#651)
- Add experimental
dvr
module to smithy-client. This will enable easier testing of HTTP traffic. (#640) - Update smithy-client to simplify creating HTTP/HTTPS connectors (#650)
- Add Event Stream support to aws-sigv4 (#648)
- Add support for the smithy auth trait. This enables authorizations that explicitly disable authorization to work when no credentials have been provided. (#652)
Breaking changes
-
(#635) The
config()
,config_mut()
,request()
, andrequest_mut()
methods onoperation::Request
have been renamed toproperties()
,properties_mut()
,http()
, andhttp_mut()
respectively. -
(#635) The
Response
type on Tower middleware has been changed fromhttp::Response<SdkBody>
tooperation::Response
. The HTTP response is still available from theoperation::Response
using itshttp()
andhttp_mut()
methods. -
(#635) The
ParseHttpResponse
trait'sparse_unloaded()
method now takes anoperation::Response
rather than anhttp::Response<SdkBody>
. -
(#626)
ParseHttpResponse
no longer has a generic argument for the body type, but instead, always usesSdkBody
. This may cause compilation failures for you if you are using Smithy generated types to parse JSON or XML without using a client to request data from a service. The fix should be as simple as removing<SdkBody>
in the example below:Before:
let output = <Query as ParseHttpResponse<SdkBody>>::parse_loaded(&parser, &response).unwrap();
After:
let output = <Query as ParseHttpResponse>::parse_loaded(&parser, &response).unwrap();
New This Week
- Add AssumeRoleProvider parser implementation. (#632)
- The closure passed to
provide_credentials_fn
can now borrow values (#637) - Add
Sender
/Receiver
implementations for Event Stream (#639) - Bring in the latest AWS models (#630)
IoT Data Plane is now available! If you discover it isn't functioning as expected, please let us know!
This week also sees the addition of a robust async caching credentials provider. Take a look at the STS example to see how to use it.
New This Week
- π Add IoT Data Plane (#624)
- π Add LazyCachingCredentialsProvider to aws-auth for use with expiring credentials, such as STS AssumeRole. Update STS example to use this new provider (#578, #595)
- π Correctly encode HTTP Checksums using base64 instead of hex. Fixes aws-sdk-rust#164. (#615)
- Update SDK gradle build logic to use gradle properties (#620)
- Overhaul serialization/deserialization of numeric/boolean types. This resolves issues around serialization of NaN/Infinity and should also reduce the number of allocations required during serialization. (#618)
- Update SQS example to clarify usage of FIFO vs. standard queues (#622, @trevorrobertsjr)
- Implement Event Stream frame encoding/decoding (#609, #619)
Contributions
Thank you for your contributions! β€οΈ
- @trevorrobertsjr (#622)
- Remove timestreamwrite and timestreamquery from the generated services (#613)
Breaking changes
test-util
has been made an optional dependency and has moved from aws-hyper to smithy-http. If you were relying onaws_hyper::TestConnection
, addsmithy-client
as a dependency and enable the optionaltest-util
feature. This prunes some unnecessary dependencies onroxmltree
andserde_json
for most users. (#608)
New This Week
- π Release all but three remaining AWS services! Glacier, IoT Data Plane and Transcribe streaming will be available in a future release. If you discover that a service isn't functioning as expected please let us know! (#607)
- π Bugfix: Fix parsing bug where parsing XML incorrectly stripped whitespace (#590, aws-sdk-rust#153)
- Establish common abstraction for environment variables (#594)
- Add windows to the test matrix (#594)
- π Bugfix: Constrain RFC-3339 timestamp formatting to microsecond precision (#596)
New this Week
- π Add support for Autoscaling (#576, #582)
AsyncProvideCredentials
now introduces an additional lifetime parameter, simplifying bridging it with#[async_trait]
interfaces- Fix S3 bug when content type was set explicitly (aws-sdk-rust#131, #566, @eagletmt)
Contributions
Thank you for your contributions! β€οΈ
- @eagletmt (#566)
New this Week
β οΈ Breaking Change:ProvideCredentials
andCredentialError
were both moved intoaws_auth::provider
when they were previously inaws_auth
(#572)- π Add support for AWS Config (#570)
- π Add support for EBS (#567)
- π Add support for Cognito (#573)
- π Add support for Snowball (#579, @landonxjames)
- Make it possible to asynchronously provide credentials with
provide_credentials_fn
(#572, #577) - Improve RDS, QLDB, Polly, and KMS examples (#561, #560, #558, #556, #550)
- Update AWS SDK models (#575)
- π Bugfix: Fill in message from error response even when it doesn't match the modeled case format (#565)
Internal Changes
- Add support for
@unsignedPayload
Smithy trait (#567) - Strip service/api/client suffix from sdkId (#546)
- Remove idempotency token trait (#571)
Contributions
Thank you for your contributions! β€οΈ
- landonxjames (#579)
This week, we've added EKS, ECR and Cloudwatch. The JSON deserialization implementation has been replaced, please be on the lookout for potential issues.
New this Week
- π Add support for ECR (#557)
- π Add support for Cloudwatch (#554)
- π Add support for EKS (#553)
- :warn: Breaking Change: httpLabel no longer causes fields to be non-optional. (#537)
- :warn: Breaking Change:
Exception
is not renamed toError
. Code may need to be updated to replaceexception
witherror
- Add more SES examples, and improve examples for Batch.
- Improved error handling ergonomics: Errors now provide
is_<variantname>()
methods to simplify error handling - π Bugfix: fix bug where invalid query strings could be generated (#531, @eagletmt)
Internal Changes
- Pin CI version to 1.52.1 (#532)
- New JSON deserializer implementation (#530)
- Fix numerous namespace collision bugs (#539)
- Gracefully handle empty response bodies during JSON parsing (#553)
Contributors
Thank you for your contributions! β€οΈ
- @eagletmt (#531)
This week, we've added CloudWatch Logs support and fixed several bugs in the generated S3 clients. There are a few breaking changes this week.
New this Week
- π Add support for CloudWatch Logs (#526)
β οΈ Breaking Change: Theset_*
functions on generated Builders now always take anOption
(#506)β οΈ Breaking Change: Unions with Documents will see the inner document type change fromOption<Document>
toDocument
(#520)β οΈ Breaking Change: Theas_*
functions on unions now returnResult
rather thanOption
to clearly indicate what the actual value is (#527)- Add more S3 examples, and improve SNS, SQS, and SageMaker examples. Improve example doc comments (#490, #508, #509, #510, #511, #512, #513, #524)
- π Bugfix: Show response body in trace logs for calls that don't return a stream (#514)
- π Bugfix: Correctly parse S3's GetBucketLocation response (#516)
- π Bugfix: Correctly URL-encode tilde characters before SigV4 signing (#519)
- π Bugfix: Fix S3 PutBucketLifecycle operation by adding support for the
@httpChecksumRequired
Smithy trait ( #523) - π Bugfix: Correctly parse non-list headers with commas in them (#525, @eagletmt)
Internal Changes
- Reduce name collisions in generated code (#502)
- Combine individual example packages into per-service example packages with multiple binaries (#481, #490)
- Re-export HyperAdapter in smithy-client (#515, @zekisherif)
- Add serialization/deserialization benchmark for DynamoDB to exercise restJson1 generated code (#507)
Contributions
Thank you for your contributions! β€οΈ
- @eagletmt (#525)
- @zekisherif (#515)
Smithy-rs now has codegen support for all AWS services! This week, we've added CloudFormation, SageMaker, EC2, and SES. More details below.
New this Week
- π Add support for CloudFormation (#500, @alistaim)
- π Add support for SageMaker (#473, @alistaim)
- π Add support for EC2 (#495)
- π Add support for SES (#499)
- Add support for the EC2 Query protocol (#475)
- Generate fluent builders for all smithy-rs clients (#496, @jonhoo)
- π Bugfix: RFC-3339 timestamps (
date-time
format in Smithy) are now formatted correctly (#479, #489) - π Bugfix: Union and enum variants named Self no longer cause compile errors in generated code (#492)
Internal Changes
- Combine individual example packages into per-service example packages with multiple binaries (#477, #480, #482, #484, #485, #486, #487, #491)
- Work towards JSON deserialization overhaul (#474)
- Make deserializer function naming consistent between XML and JSON deserializers (#497)
Contributors:
- @Doug-AWS
- @jdisanti
- @rcoh
- @alistaim
- @jonhoo
Thanks!!
Starting this week, smithy-rs now has codegen support for all AWS services except EC2. This week weβve added MediaLive, MediaPackage, SNS, Batch, STS, RDS, RDSData, Route53, and IAM. More details below.
New this Week
- π Add support for MediaLive and MediaPackage (#449, @alastaim)
- π Add support for SNS (#450)
- π Add support for Batch (#452, @alistaim)
- π Add support for STS. Note: This does not include support for an STS-based credential provider although an example is provided. (#453)
- π Add support for RDS (#455) and RDS-Data (#470). (@LMJW)
- π Add support for Route53 (#457, @alistaim)
- Support AWS Endpoints & Regions. With this update, regions like
iam-fips
andcn-north-1
will now resolve to the correct endpoint. Please report any issues with endpoint resolution. (#468) - π Bugfix: Primitive numerics and booleans are now filtered from serialization when they are 0 and not marked as required. This resolves issues where maxResults needed to be set even though it is optional. (#451)
- π Bugfix: S3 Head Object returned the wrong error when the object did not exist (#460, fixes #456)
Internal Changes
- Remove unused key βbuildβ from smithy-build.json and Rust settings (#447)
- Split SDK CI jobs for faster builds & reporting (#446)
- Fix broken doc link in JSON serializer (@LMJW)
- Work towards JSON deserialization overhaul (#454, #462)
Contributors:
- @rcoh
- @jdisanti
- @alistaim
- @LMJW
Thanks!!
New this week:
- π Add support for SQS. SQS is our first service to use the awsQuery protocol. Please report any issues you may encounter.
- π Add support for ECS.
- Breaking Change: Refactored
smithy_types::Error
to be more flexible. Internal fields ofError
are now private and can now be accessed accessor functions. (#426) ByteStream::from_path
now acceptsimplications AsRef<Path>
(@LMJW)- Add support for S3 extended request id (#429)
- Add support for the awsQuery protocol. smithy-rs can now add support for all services except EC2.
- Bugfix: Timestamps that fell precisely on minute boundaries were not properly formatted (#435)
- Improve documentation for
ByteStream
& addpub use
(#443) - Add support for
EndpointPrefix
used bys3::WriteGetObjectResponse
( #420)
Smithy Internals
- Rewrite JSON serializer (#411, #423, #416, #427)
- Remove dead βrootProjectβ setting in
smithy-build.json
- Bugfix: Idempotency tokens were not properly generated when operations were used by resources
Contributors:
- @jdisanti
- @rcoh
- @LMJW
Thanks!