Skip to content
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

hyper-util's "client-legacy" feature forces use of mio, but wasn't required in hyper 0.14.x #3842

Open
erickt opened this issue Jan 29, 2025 · 1 comment
Labels
A-client Area: client. C-bug Category: bug. Something is wrong. This is bad! K-hyper-util Crate: hyper-util

Comments

@erickt
Copy link
Contributor

erickt commented Jan 29, 2025

Version
List the version(s) of hyper, and any relevant hyper dependency (such as h2 if this is related to HTTP/2).

hyper 1.6.0, hyper-util 0.1.10

Platform
The output of uname -a (UNIX), or version and 32 or 64-bit (Windows)

Fuchsia

Description
Enter your issue details here.
One way to structure the description:

I work on the Fuchsia operating system, and we're running into problems updating hyper from 0.14.x to 1.x with this in our Cargo.toml:

hyper = { version = "0.14.19", default-features = false, features = ["stream", "http1", "client", "server"] }
hyper-rustls = { version = "0.24.2", default-features = false }
...

This is requiring us to also update our hyper-rustls from 0.24.2 to 0.27.5, which now depends on hyper-util 0.1.x to wrap the client library. This causes our version of tokio to enable the mio feature, which doesn't support Fuchsia and fails to compile.

From what I can tell, this worked back in hyper 0.14.x because these subset of feature flags allowed hyper-rustls 0.24.x to expose most of it's functionality it needed based off the lower level connection API. It seems that hyper-util 0.1.10's client-legacy feature merged that functionality together that requires tokio. Would it be possible to restore this old functionality? It'd be unfortunate for us to have to essentially fork hyper-rustls and hyper-util to allow it to work with a non-tokio executor. I'd be happy to help with a refactor there's interest in this.

@erickt erickt added the C-bug Category: bug. Something is wrong. This is bad! label Jan 29, 2025
@seanmonstar
Copy link
Member

Woops, sorry about that! I don't mean for the utilities to require being used with Tokio. I've love any help in making this more flexible!

@seanmonstar seanmonstar added A-client Area: client. K-hyper-util Crate: hyper-util labels Jan 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-client Area: client. C-bug Category: bug. Something is wrong. This is bad! K-hyper-util Crate: hyper-util
Projects
None yet
Development

No branches or pull requests

2 participants