What happened to Hyper?

What happened to Hyper? It used to be a straightforward HTTP library. A synchronous call in version 0.10.9 looked like this:

let client = Client::new();
let res = client.get("http://example.domain").send().unwrap();
assert_eq!(res.status, hyper::Ok);

Hyper was the layer which provided a simpler interface to the HTTP layer.

Not any more. I had code like that working, and today I needed to do something small with Hyper. It's all different, and the documentation is worse. Can't use a string as the URL, you have to use a "Uri" type. now. Not Hyper's Uri type, or the Uri crate's Uri type, but the one from the HTTP module, which doesn't have any obvious escaping functions.

"client.get("http://example.domain").send()" no longer works, either.

Hyper's documentation now says " If looking for just a convenient HTTP client, consider the reqwest crate."

Switched over to "reqwest".

I thought we were past the churn stage.

Hyper is the low-level http crate that almost all other http-enabled libraries use internally.


I don't know when exactly you believe libraries stop iterating on their APIs, but Hyper 0.11 was released 3 and a half years ago, and the changes you are unhappy with were made then.


Also, reqwest was created more than four years ago by the author of Hyper as the preferred high-level client library. From the 2016 blog post:

If you need to make HTTP requests in your application, you probably want to reach for reqwest.