PackageTrack
Sign in Get early access

http

A set of types for representing HTTP requests and responses.

1.5.0 941M downloads/mo #55 most downloaded on crates.io hyperium/http

What this package is like to depend on

Last release 25 days ago

29 Jul 2026

Ships fairly regularly

a new release about every 4 months

Nearly every release is documented

notes for 42 of 44 stable releases

Nothing withdrawn

no release was ever pulled

12 years old

45 releases · first in 2014

4 releases in the last 12 months

see the full history below

Release timeline

45 releases · Nov 2014 to Jul 2026
2015 2017 2019 2021 2023 2025
Release Pre-release

Releases

latest 45
  1. 1.5.0 29 Jul 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v1.4.2...v1.5.0

    Open source →
    Release notes
    • Add Method::QUERY constant for the new QUERY method defined in RFC 10008.
    • Fix uri::Builder::path_and_query() to allow empty strings to mean no path.
    • Fix uri::PathAndQuery parsing to enforce URI max length.
    Open source →
  2. 1.4.2 08 Jun 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: v1.4.1...v1.4.2

    Open source →
    Release notes
    • Fix uri::Builder to allow "*" as the path when scheme and authority are also set, used in HTTP/2 requests.
    • Fix Uri to properly reject DEL characters.
    Open source →
  3. 1.4.1 25 May 2026
    Release notes

    tl;dr

    • Fix PathAndQuery::from_static() and from_shared() to reject inputs that do not start with /.
    • Fix Extend for HeaderMap to clamp max size hint and not overflow.
    • Fix header::IntoIter that could use-after-free if the generic value type could panic on drop.
    • Fix header::{IterMut, ValuesIterMut} to not violate stacked borrows.

    What's Changed

    New Contributors

    Full Changelog: v1.4.0...v1.4.1

    Open source →
    Release notes
    • Fix PathAndQuery::from_static() and from_shared() to reject inputs that do not start with /.
    • Fix Extend for HeaderMap to clamp max size hint and not overflow.
    • Fix header::IntoIter that could use-after-free if the generic value type could panic on drop.
    • Fix header::{IterMut, ValuesIterMut} to not violate stacked borrows.
    Open source →
  4. 1.4.0 24 Nov 2025
    Release notes

    Highlights

    • Add StatusCode::EARLY_HINTS constant for 103 Early Hints.
    • Make StatusCode::from_u16 now a const fn.
    • Make Authority::from_static now a const fn.
    • Make PathAndQuery::from_static now a const fn.
    • MSRV increased to 1.57 (allows legible const fn panic messages).

    What's Changed

    New Contributors

    Full Changelog: v1.3.1...v1.4.0

    Open source →
    Release notes
    • Add StatusCode::EARLY_HINTS constant for 103 Early Hints.
    • Make StatusCode::from_u16 now a const fn.
    • Make Authority::from_static now a const fn.
    • Make PathAndQuery::from_static now a const fn.
    • MSRV increased to 1.57 (allows legible const fn panic messages).
    Open source →
  5. 1.3.1 11 Mar 2025
    Release notes

    What's Changed

    Full Changelog: v1.3.0...v1.3.1

    Open source →
    Release notes
    • Fix validation that all characters are UTF-8 in URI path and query.
    Open source →
  6. 1.3.0 11 Mar 2025
    Release notes

    What's Changed

    • Allow most UTF-8 characters in URI path and query. (#715)
      • This means paring Uris with previously illegal characters according the original RFC will now be accepted. They used to be rejected in the name of spec purity, but many operators were using a fork of http because reality is that most characters are seen in the real world.
    • Fix HeaderMap::reserve() to allocate sufficient capacity.

    New Contributors

    Thanks!

    Full Changelog: v1.2.0...v1.3.0

    Open source →
    Release notes
    • Allow most UTF-8 characters in URI path and query.
    • Fix HeaderMap::reserve() to allocate sufficient capacity.
    Open source →
  7. 1.2.0 03 Dec 2024
    Release notes

    What's Changed

    • Add StatusCode::TOO_EARLY constant for 425 status. (#725)
    • Loosen TryFrom<HashMap> for HeaderMap to work with any state generic. (#729)
    • Change Builder methods to use TryInto instead of TryFrom arguments. (#730)
    • Make StatusCode::as_u16 a const function. (#680)
    • Fix Method parsing to allow #$%&' characters. (#713)
    • Fix HeaderName parsing to reject " characters. (#716)
    • Fix off by 1 error in Method::from_bytes that could cause extra allocations. (#708)
    • Fix HeaderMap capacity calculation in some cases (#710)

    New Contributors

    Thanks

    Full Changelog: v1.1.0...v1.2.0

    Open source →
    Release notes
    • Add StatusCode::TOO_EARLY constant for 425 status.
    • Loosen TryFrom<HashMap> for HeaderMap to work with any state generic.
    • Change Builder methods to use TryInto instead of TryFrom arguments.
    • Make StatusCode::as_u16 a const function.
    • Fix Method parsing to allow #$%&' characters.
    • Fix HeaderName parsing to reject " characters.
    • Fix off by 1 error in Method::from_bytes that could cause extra allocations.
    Open source →
  8. 1.1.0 04 Mar 2024
    Release notes

    What's Changed

    • Add methods to allow trying to allocate in the HeaderMap, returning an error if oversize instead of panicking.
    • Add Extensions::get_or_insert() method.
    • Implement From<Uri> for uri::Builder.
    • Fix HeaderName::from_lowercase that could allow NUL bytes in some cases.

    New Contributors

    Full Changelog: v1.0.0...v1.1.0

    Open source →
    Release notes
    • Add methods to allow trying to allocate in the HeaderMap, returning an error if oversize instead of panicking.
    • Add Extensions::get_or_insert() method.
    • Implement From<Uri> for uri::Builder.
    • Fix HeaderName::from_lowercase that could allow NUL bytes in some cases.
    Open source →
  9. 1.0.0 15 Nov 2023
    Release notes

    What's Changed

    • Implement Clone for Request, Response, and Extensions. This breaking change requires
      that all extensions now implement Clone.
    • Add a default-on std feature. Disabling it currently is not supported.
    • Fix MIRI warnings in HeaderMap::iter().

    New Contributors

    • @hjr3 made their first contribution in #644
    Open source →
    Release notes
    • Implement Clone for Request, Response, and Extensions. This breaking change requires that all extensions now implement Clone.
    • Add a default-on std feature. Disabling it currently is not supported.
    • Fix MIRI warnings in HeaderMap::iter().
    Open source →
  10. 0.2.12 04 Mar 2024
    Release notes

    What's Changed

    • Add methods to allow trying to allocate in the HeaderMap, returning an error if oversize instead of panicking.
    • Fix HeaderName::from_lowercase that could allow NUL bytes in some cases.
    Open source →
  11. 0.2.11 13 Nov 2023

    Nothing published for this version

  12. 0.2.10 10 Nov 2023
    Release notes
    • Fix parsing of Authority to handle square brackets in incorrect order.
    • Fix HeaderMap::with_capacity() to handle arithmetic overflow.
    Open source →
  13. 0.2.9 17 Feb 2023
    Release notes
    • Add HeaderName constants for cache-status and cdn-cache-control.
    • Implement Hash for PathAndQuery.
    • Re-export HeaderName at crate root.
    Open source →
  14. 0.2.8 06 Jun 2022
    Release notes
    • Fix internal usage of uninitialized memory to use MaybeUninit inside HeaderName.
    Open source →
  15. 0.2.7 28 Apr 2022
    Release notes
    • MSRV bumped to 1.49.
    • Add extend() method to Extensions.
    • Add From<Authority> and From<PathAndQuery> impls for Uri.
    • Make HeaderName::from_static a const fn.
    Open source →
  16. 0.2.6 30 Dec 2021
    Release notes
    • Upgrade internal itoa dependency to 1.0.
    Open source →
  17. 0.2.5 21 Sep 2021
    Release notes
    • Add is_empty() and len() methods to Extensions.
    • Add version_ref() method to request::Builder.
    • Implement TryFrom<Vec<u8>> and TryFrom<String> for Authority, Uri, PathAndQuery, and HeaderName.
    • Make HeaderValue::from_static a const fn.
    Open source →
  18. 0.2.4 07 Apr 2021
    Release notes
    • Fix Uri parsing to allow {, ", and } in paths.
    Open source →
  19. 0.2.3 08 Jan 2021
    Release notes
    • Upgrade internal (private) bytes dependency to 1.0.
    Open source →
  20. 0.2.2 15 Dec 2020
    Release notes
    • Fix (potential double) panic of (HeaderMap) OccupiedEntry::remove_entry and remove_entry_mult when multiple values are present. ([#446], [#449] dekellum)
    • Safety audits of (priv) ByteStr and refactor of Authority ([#408], [#414] sbosnick)
    • Fix HeaderName to error instead of panic when input is too long ([#432] [#433] acfoltzer)
    • Allow StatusCode to encode values 100-999 without error. Use of the unclassified range 600-999 remains discouraged. ([#144], [#438], [#443] quininer dekellum)
    • Add String and &String fallible conversions to PathAndQuery ([#450] mkindahl)
    • Fix Authority (and Uri) to error instead of panic on unbalanced brackets ([#435], [#445] aeryz)
    Open source →
  21. 0.2.1 25 Mar 2020
    Release notes
    • Add extensions_ref and extensions_mut to request::Builder and response::Builder.
    Open source →
  22. 0.2.0 02 Dec 2019
    Release notes
    • Add Version::HTTP_3 constant.
    • Add HeaderValue::from_maybe_shared, HeaderValue::from_maybe_shared_unchecked, Uri::from_maybe_shared, Authority::from_maybe_shared, and PathAndQuery::from_maybe_shared.
    • Change request::Builder, response::Builder, and uri::Builder to use by-value methods instead of by-ref.
    • Change from HttpTryFrom trait to std::convert::TryFrom.
    • Change HeaderMap::entry to no longer return a Result.
    • Change HeaderMap::drain iterator to match the behavior of IntoIter.
    • Change Authority::port to return an Option<Port> instead of Option<u16>.
    • Change Uri::scheme to return Option<&Scheme> instead of Option<&str>.
    • Change Uri::authority to return Option<&Authority> instead of Option<&str>.
    • Remove InvalidUriBytes, InvalidHeaderNameBytes, and InvalidHeaderValueBytes error types.
    • Remove HeaderValue::from_shared, HeaderValue::from_shared_unchecked, Uri::from_shared, Authority::from_shared, Scheme::from_shared, and PathAndQuery::from_shared.
    • Remove Authority::port_part.
    • Remove Uri::scheme_part and Uri::authority_part.
    Open source →
  23. 0.1.21 02 Dec 2019

    Nothing published for this version

  24. 0.1.20 26 Nov 2019
    Release notes
    • Fix possible double-free if header::Drain iterator is std::mem::forgoten (#357).
    • Fix possible data race if multiple header::ValueDrains are iterated on different threads (#362).
    • Fix HeaderMap::reserve capacity overflows (#360).
    • Fix parsing long authority-form Uris (#351).
    Open source →
  25. 0.1.19 15 Oct 2019
    Release notes
    • Allow % in IPv6 addresses in Uri (#343).
    Open source →
  26. 0.1.18 26 Jul 2019
    Release notes
    • Fix compilation of HeaderName parsing on WASM targets (#324).
    • Implement HttpTryFrom<HashMap> for HeaderMap (#326).
    • Export http::header::HeaderValue as http::HeaderValue.
    Open source →
  27. 0.1.17 05 Apr 2019
    Release notes
    • Add Error::inner_ref() to view the kind of error (#303)
    • Add headers_ref() and headers_mut() methods to request::Builder and response::Builder (#293)
    Open source →
  28. 0.1.16 19 Feb 2019
    Release notes
    • Fix Uri to permit more characters in the path (#296)
    Open source →
  29. 0.1.15 22 Jan 2019
    Release notes
    • Fix Uri::host() to include brackets of IPv6 literals (#292)
    • Add scheme_str and port_u16 methods to Uri (#287)
    • Add method_ref, uri_ref, and headers_ref to request::Builder (#284)
    Open source →
  30. 0.1.14 21 Nov 2018
    Release notes
    • Add Port struct (#252, #255, #265)
    • Introduce Uri builder (#219)
    • Empty Method no longer considered valid (#262)
    • Fix Uri equality when terminating question mark is present (#270)
    • Allow % character in userinfo (#269)
    • Support additional tokens for header names (#271)
    • Export http::headers::{IterMut, ValuesMut} (#278)
    Open source →
  31. 0.1.13 14 Sep 2018
    Release notes
    • impl fmt::Display for HeaderName (#249)
    • Fix uri::Authority parsing when there is no host after an @ (#248)
    • Fix Uri parsing to allow more characters in query strings (#247)
    Open source →
  32. 0.1.12 08 Sep 2018
    Release notes
    • Fix HeaderValue parsing to allow HTABs (#244)
    Open source →
  33. 0.1.11 05 Sep 2018
    Release notes
    • Add From<&Self> for HeaderValue, Method, and StatusCode (#238)
    • Add Uri::from_static (#240)
    Open source →
  34. 0.1.10 08 Aug 2018
    Release notes
    • impl HttpTryFrom<String> for HeaderValue (#236)
    Open source →
  35. 0.1.9 07 Aug 2018
    Release notes
    • Fix double percent encoding (#233)
    • Add additional HttpTryFrom impls (#234)
    Open source →
  36. 0.1.8 23 Jul 2018
    Release notes
    • Add fuller set of PartialEq for Method (#221)
    • Reduce size of HeaderMap by using Box<[Entry]> instea of Vec (#224)
    • Reduce size of Extensions by storing as Option<Box<AnyMap>> (#227)
    • Implement Iterator::size_hint for most iterators in header (#226)
    Open source →
  37. 0.1.7 23 Jun 2018
    Release notes
    • Add From<uN> for HeaderValue for most integer types (#218).
    • Add Uri::into_parts() inherent method (same as Parts::from(uri)) (#214).
    • Fix converting Uris in authority-form to Parts and then back into Uri (#216).
    • Fix Authority parsing to reject multiple port sections (#215).
    • Fix parsing 1 character authority-form Uris into illegal forms (#220).
    Open source →
  38. 0.1.6 13 Jun 2018
    Release notes
    • Add HeaderName::from_static() constructor (#195).
    • Add Authority::from_static() constructor (#186).
    • Implement From<HeaderName> for HeaderValue (#184).
    • Fix duplicate keys when iterating over header::Keys (#201).
    Open source →
  39. 0.1.5 28 Feb 2018
    Release notes
    • Add websocket handshake related header constants (#162).
    • Parsing Authority with an empty string now returns an error (#164).
    • Implement PartialEq<u16> for StatusCode (#153).
    • Implement HttpTryFrom<&Uri> for Uri (#165).
    • Implement FromStr for Method (#167).
    • Implement HttpTryFrom<String> for Uri (#171).
    • Add into_body fns to Request and Response (#172).
    • Fix Request::options (#177).
    Open source →
  40. 0.1.4 05 Jan 2018
    Release notes
    • Add PathAndQuery::from_static (#148).
    • Impl PartialOrd / PartialEq for Authority and PathAndQuery (#150).
    • Add map fn to Request and Response (#151).
    Open source →
  41. 0.1.3 11 Dec 2017
    Release notes
    • Add Scheme associated consts for common protos.
    Open source →
  42. 0.1.2 30 Nov 2017
    Release notes
    • Add Uri accessor for scheme part.
    • Fix Uri parsing bug (#134)
    Open source →
  43. 0.1.1 09 Oct 2017
    Release notes
    • Provide Uri accessors for parts (#129)
    • Add Request builder helpers. (#123)
    • Misc performance improvements (#126)
    Open source →
  44. 0.1.0 08 Sep 2017
    Release notes
    • Initial release.
    Open source →
  45. 0.0.0-prealpha 20 Nov 2014 pre-release

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive