http-rs / http-types

Common types for HTTP operations
https://docs.rs/http-types
Apache License 2.0
200 stars 83 forks source link

http vs http_types #248

Closed drmason13 closed 4 years ago

drmason13 commented 4 years ago

What makes this crate and http different? They seem to have very similar goals (foundational types for http to interop between different crates) which would - at first glance - be better met by one "winning out" over the other. For instance I spotted this http_types issue #137 where http and http_types urls were a little incompatible.

Is it a case of "they're basically the same and are just competing" or are there reasons projects might prefer one over the other? Are there reasons to coexist? (in a perfect world where nobody's hard work would go to waste and nobody's feelings would be hurt!)

I'm sorry if this has been asked a number of times, I couldn't find an issue (open or closed) mentioning the http crate at all, though I might have missed one as http is a common keyword 😄. Also I don't mean to start anything unpleasant, I'm just curious 👍

yoshuawuyts commented 4 years ago

I wrote about this a while back on my blog: https://blog.yoshuawuyts.com/async-http/#shared-abstractions

http-types started as an experiment in how ergonomic we could make an http layer if it was designed for async Rust from the ground up. And it turned out that the result was has worked really well, and enabled us to share quite a bit of code between tide and surf that was previously duplicate.

We're currently in the process of fully living up to the http-types name; and working to create full type-safe abstractions for all headers. The focus is right now finishing up the work of content negotiation, and then we'll move onto other headers.

Hope this answers your question!