-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Allow client IO to be !Send #3363
Copy link
Copy link
Closed
Labels
A-clientArea: client.Area: client.A-http1Area: HTTP/1 specific.Area: HTTP/1 specific.B-breaking-changeBlocked: this is an "API breaking change".Blocked: this is an "API breaking change".C-featureCategory: feature. This is adding a new feature.Category: feature. This is adding a new feature.E-mediumEffort: medium. Some knowledge of how hyper internal works would be useful.Effort: medium. Some knowledge of how hyper internal works would be useful.
Milestone
Description
Just like server::conn::http1::Connection can work with an IO type that isn't Send, because it has a with_upgrades() variant, we should make it so the client http1::Connection type doesn't require Send. 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 :)
- Remove
Sendfrom theT: Read + Writebounds forconn::http1::Connection - Provide a
UpgradeableConnectionin similar style to what is inserver. - Update the
single_threaded.rsexample to use a!SendIO type for the client, to prove it works.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-clientArea: client.Area: client.A-http1Area: HTTP/1 specific.Area: HTTP/1 specific.B-breaking-changeBlocked: this is an "API breaking change".Blocked: this is an "API breaking change".C-featureCategory: feature. This is adding a new feature.Category: feature. This is adding a new feature.E-mediumEffort: medium. Some knowledge of how hyper internal works would be useful.Effort: medium. Some knowledge of how hyper internal works would be useful.