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.

6 Likes

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.

4 Likes

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.

2 Likes