Open jdisanti opened 2 years ago
I spent some time working on this this week. I was able to get aws-smithy-http
compiling with most tests passing, and some of aws-smithy-checksums
(ended up stubbing out the checksum calculating body to move forward). My work is available on the hyper-1x-experimentation-dec-7-2022
branch. Findings below.
Further work that is unblocked right now:
aws-smithy-http
after upgradeaws-smithy-checksums
to support new Body
traitPrerequisites before continuing:
hyper-util
to release with a Connect
/Connection
traits and connection poolhyper-tls
or hyper-rustls
) to actually test the SDK. We can do this work ourselves if the previous prerequisite is completed.Work that can be done after prerequisites:
hyper-rustls
to support hyper 1.xhyper-tls
to support hyper 1.xdvr
in aws-smithy-client
(transition from hyper::body::channel()
to http_body_util::StreamBody
)Note: On the Body
impls, it should be safe to assume trailers come after data frames since hyper
will error out otherwise.
Findings so far:
hyper-util
ends up supporting, we may need to fully implement the HTTP versioning RFC to avoid needing to worry about ALPN (or it may be cheaper to do so).Work in progress test matrix:
This tracks progress on the upgrade to Hyper 1.0
Many of these changes are prototyped in this branch which can send an E2E request with RusTLS
Implementation Tasks
Upstream Changes
capture_connection
andpoison
tohyper-util
SDK changes
ByteStream
dvr
AwsChunkedBody
—the Frame API changes the flow here a little bitSpawn
toAwsSmithyAsync
—bridge this with Hyper Executor (you now must provide an executor to create a Hyper builder)Testing Tasks