-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Allow client IO to be !Send #3363
Labels
A-client
Area: client.
A-http1
Area: HTTP/1 specific.
B-breaking-change
Blocked: this is an "API breaking change".
C-feature
Category: feature. This is adding a new feature.
E-medium
Effort: medium. Some knowledge of how hyper internal works would be useful.
Milestone
Comments
seanmonstar
added
A-client
Area: client.
C-feature
Category: feature. This is adding a new feature.
E-medium
Effort: medium. Some knowledge of how hyper internal works would be useful.
A-http1
Area: HTTP/1 specific.
B-breaking-change
Blocked: this is an "API breaking change".
labels
Oct 19, 2023
seanmonstar
added a commit
that referenced
this issue
Oct 23, 2023
This removes the requirement of the IO type from being `Send` for the HTTP/1 client connection. To do so, the ability to perform `hyper::upgrade`s had to be moved to a separate type which does require the `Send` bound. This mirrors how the server types do it. The `Connection` type now has a `with_upgrades()` method to convert. Closes #3363 BREAKING CHANGE: If you use client HTTP/1 upgrades, you must call `Connection::with_upgrades()` to still work the same.
seanmonstar
added a commit
that referenced
this issue
Oct 23, 2023
This removes the requirement of the IO type from being `Send` for the HTTP/1 client connection. To do so, the ability to perform `hyper::upgrade`s had to be moved to a separate type which does require the `Send` bound. This mirrors how the server types do it. The `Connection` type now has a `with_upgrades()` method to convert. Closes #3363 BREAKING CHANGE: If you use client HTTP/1 upgrades, you must call `Connection::with_upgrades()` to still work the same.
seanmonstar
added a commit
that referenced
this issue
Oct 26, 2023
This removes the requirement of the IO type from being `Send` for the HTTP/1 client connection. To do so, the ability to perform `hyper::upgrade`s had to be moved to a separate type which does require the `Send` bound. This mirrors how the server types do it. The `Connection` type now has a `with_upgrades()` method to convert. Closes #3363 BREAKING CHANGE: If you use client HTTP/1 upgrades, you must call `Connection::with_upgrades()` to still work the same.
0xE282B0
pushed a commit
to 0xE282B0/hyper
that referenced
this issue
Jan 12, 2024
This removes the requirement of the IO type from being `Send` for the HTTP/1 client connection. To do so, the ability to perform `hyper::upgrade`s had to be moved to a separate type which does require the `Send` bound. This mirrors how the server types do it. The `Connection` type now has a `with_upgrades()` method to convert. Closes hyperium#3363 BREAKING CHANGE: If you use client HTTP/1 upgrades, you must call `Connection::with_upgrades()` to still work the same.
0xE282B0
pushed a commit
to 0xE282B0/hyper
that referenced
this issue
Jan 16, 2024
This removes the requirement of the IO type from being `Send` for the HTTP/1 client connection. To do so, the ability to perform `hyper::upgrade`s had to be moved to a separate type which does require the `Send` bound. This mirrors how the server types do it. The `Connection` type now has a `with_upgrades()` method to convert. Closes hyperium#3363 BREAKING CHANGE: If you use client HTTP/1 upgrades, you must call `Connection::with_upgrades()` to still work the same. Signed-off-by: Sven Pfennig <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-client
Area: client.
A-http1
Area: HTTP/1 specific.
B-breaking-change
Blocked: this is an "API breaking change".
C-feature
Category: feature. This is adding a new feature.
E-medium
Effort: medium. Some knowledge of how hyper internal works would be useful.
Just like
server::conn::http1::Connection
can work with an IO type that isn'tSend
, because it has awith_upgrades()
variant, we should make it so the clienthttp1::Connection
type doesn't requireSend
. This would be a breaking change, and so should happen before tagging 1.0.I believe doing this is probably somewhat involved, let me lay out what I think needs to be done. If any step is unclear, or another way seems better, please comment :)
Send
from theT: Read + Write
bounds forconn::http1::Connection
UpgradeableConnection
in similar style to what is inserver
.single_threaded.rs
example to use a!Send
IO type for the client, to prove it works.The text was updated successfully, but these errors were encountered: