-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
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.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Just like
server::conn::http1::Connectioncan work with an IO type that isn'tSend, because it has awith_upgrades()variant, we should make it so the clienthttp1::Connectiontype 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 :)
Sendfrom theT: Read + Writebounds forconn::http1::ConnectionUpgradeableConnectionin similar style to what is inserver.single_threaded.rsexample to use a!SendIO type for the client, to prove it works.