-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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 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 <s.pfennig@reply.de>
# for free
to join this conversation on GitHub.
Already have an account?
# 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: