-
Notifications
You must be signed in to change notification settings - Fork 188
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
consolidate http client implementation(s) #3866
Conversation
A new generated diff is ready to view.
A new doc preview is ready to view. |
A new generated diff is ready to view.
A new doc preview is ready to view. |
A new generated diff is ready to view.
A new doc preview is ready to view. |
A new generated diff is ready to view.
A new doc preview is ready to view. |
A new generated diff is ready to view.
A new doc preview is ready to view. |
A new generated diff is ready to view.
A new doc preview is ready to view. |
A new generated diff is ready to view.
A new doc preview is ready to view. |
A new generated diff is ready to view.
A new doc preview is ready to view. |
default = "deny" | ||
unlicensed = "deny" | ||
copyleft = "deny" | ||
allow-osi-fsf-free = "neither" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
shouldn't we keep these?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated cargo-deny
in the docker image to try and fix the panic happening due to some edge case triggered by aws-smithy-http-client
. These are all the default now and an error
on latest version. See EmbarkStudios/cargo-deny#611
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great step forward!
A new generated diff is ready to view.
A new doc preview is ready to view. |
Motivation and Context
Description
This is the first of what I'm going to assume will be several PRs on the path to migrating us to hyper 1.x. The goal is to reach a desired state as far as crate organization, feature flags, and how this is all enabled by default (eventually). This first PR just moves existing HTTP client support around as prep work for what's to come.
NOTE: This is all getting merged into a staging branch
hyper1
rather thanmain
hyper-0.14
andhyper-1.x
support into a newaws-smithy-http-client
crate.hyper 0.14
fromaws-smithy-runtime
.aws-smithy-experimental
for hyper 1.x and leave breadcrumb for where it lives now.CaptureSmithyConnection
intoaws-smithy-runtime-api
so that it can be used by new crate without creating a circular dependency.Why a new crate?
Several reasons:
Cargo.toml
is kind of a mess as a result. In a new crate we can isolate this ugliness as well as manage feature flags more meaningfully with this in mind.aws-smithy-runtime
makes it a load bearing crate for all of the HTTP and TLS related feature flags we may wish to expose in addition to it's own feature flags. This sort of explodes with the aforementioned bifurcation.aws-smithy-runtime
and generated SDKs to choose a default configuration but customers can pull in this newaws-smithy-http-client
crate and enable different flags for specific use cases (e.g. FIPS).hyper-util
legacy client, this gives us a natural place for that should we go down that route)Future
Where are we going?
aws-smithy-runtime/src/client/http/test_util
into theaws-smithy-http-client
crate. These are utilities for testing with a mock/fake HTTP client and they make more sense in this new crate. This also allows us to update the utils to support the hyper/http 1.x ecosystem and feature gate the legacy ecosystem. We can re-export the legacy ecosystem test support fromaws-smithy-runtime
for now.hyper-util
is not 1.x we can't expose theHyperClientBuilder
like we did previously. I don't think we should even if it was 1.x though, we should offer a "default client" with knobs for all the things we do want to support directly. Anything not found there you have to bring your own client configured to your heart's content.aws-lc
the default (at least onunix
).s2n-tls
toaws-smithy-http-client
and reconcile related crypto/tls feature flags with this in mind.aws-smithy-runtime
and generated clients to be hyper 1.x and add appropriate new flags, etc.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.