NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #53 most downloaded on crates.io
A set of types for representing HTTP requests and responses.
Last release 2 months 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
feat(method): add QUERY method by @seanmonstar in #798
Full Changelog: v1.4.2...v1.5.0
Method::QUERY constant for the new QUERY method defined in RFC 10008.uri::Builder::path_and_query() to allow empty strings to mean no path.uri::PathAndQuery parsing to enforce URI max length.One column per quarter.
feat(method): impl PartialOrd + Ord by @mmirate in #840
Full Changelog: v1.4.1...v1.4.2
uri::Builder to allow "*" as the path when scheme and authority are also set, used in HTTP/2 requests.Uri to properly reject DEL characters.Fix PathAndQuery::from_static() and from_shared() to reject inputs that do not start with / .
PathAndQuery::from_static() and from_shared() to reject inputs that do not start with /.Extend for HeaderMap to clamp max size hint and not overflow.header::IntoIter that could use-after-free if the generic value type could panic on drop.header::{IterMut, ValuesIterMut} to not violate stacked borrows.Full Changelog: v1.4.0...v1.4.1
Add StatusCode::EARLY_HINTS constant for 103 Early Hints.
StatusCode::EARLY_HINTS constant for 103 Early Hints.StatusCode::from_u16 now a const fn.Authority::from_static now a const fn.PathAndQuery::from_static now a const fn.Extensions debug output by @crepererum in #773HeaderMap documentaion by @Sol-Ell in #774StatusCode::from_u16 const by @coolreader18 in #761Authority/PathAndQuery::from_static const by @WaterWhisperer in #786Full Changelog: v1.3.1...v1.4.0
fix: validate path bytes are at least utf8 by @seanmonstar in #756
Full Changelog: v1.3.0...v1.3.1
Allow most UTF-8 characters in URI path and query.
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.HeaderMap::reserve() to allocate sufficient capacity.Full Changelog: v1.2.0...v1.3.0
HeaderMap::reserve() to allocate sufficient capacity.Add StatusCode::TOO_EARLY constant for 425 status.
StatusCode::TOO_EARLY constant for 425 status. (#725)TryFrom<HashMap> for HeaderMap to work with any state generic. (#729)Builder methods to use TryInto instead of TryFrom arguments. (#730)StatusCode::as_u16 a const function. (#680)Method parsing to allow #$%&' characters. (#713)HeaderName parsing to reject " characters. (#716)Method::from_bytes that could cause extra allocations. (#708)HeaderMap capacity calculation in some cases (#710)Full Changelog: v1.1.0...v1.2.0
StatusCode::TOO_EARLY constant for 425 status.TryFrom<HashMap> for HeaderMap to work with any state generic.Builder methods to use TryInto instead of TryFrom arguments.StatusCode::as_u16 a const function.Method parsing to allow #$%&' characters.HeaderName parsing to reject " characters.Method::from_bytes that could cause extra allocations.Add methods to allow trying to allocate in the HeaderMap , returning an error if oversize instead of panicking.
HeaderMap, returning an error if oversize instead of panicking.Extensions::get_or_insert() method.From<Uri> for uri::Builder.HeaderName::from_lowercase that could allow NUL bytes in some cases.Full Changelog: v1.0.0...v1.1.0
Implement Clone for Request , Response , and Extensions . This breaking change requires that all extensions now implement Clone .
Clone for Request, Response, and Extensions. This breaking change requiresClone.std feature. Disabling it currently is not supported.HeaderMap::iter().Add methods to allow trying to allocate in the HeaderMap , returning an error if oversize instead of panicking.
HeaderMap, returning an error if oversize instead of panicking.HeaderName::from_lowercase that could allow NUL bytes in some cases.Nothing published for this version
Fix parsing of Authority to handle square brackets in incorrect order.
Authority to handle square brackets in incorrect order.HeaderMap::with_capacity() to handle arithmetic overflow.Add HeaderName constants for cache-status and cdn-cache-control.
HeaderName constants for cache-status and cdn-cache-control.Hash for PathAndQuery.HeaderName at crate root.Fix internal usage of uninitialized memory to use MaybeUninit inside HeaderName.
MaybeUninit inside HeaderName.Add extend() method to Extensions.
1.49.extend() method to Extensions.From<Authority> and From<PathAndQuery> impls for Uri.HeaderName::from_static a const fn.Upgrade internal itoa dependency to 1.0.
itoa dependency to 1.0.Add is_empty() and len() methods to Extensions.
is_empty() and len() methods to Extensions.version_ref() method to request::Builder.TryFrom<Vec<u8>> and TryFrom<String> for Authority, Uri, PathAndQuery, and HeaderName.HeaderValue::from_static a const fn.Fix Uri parsing to allow {, ", and } in paths.
Uri parsing to allow {, ", and } in paths.Upgrade internal (private) bytes dependency to 1.0.
bytes dependency to 1.0.Fix (potential double) panic of (HeaderMap) OccupiedEntry::remove_entry and remove_entry_mult when multiple values are present. ([#446], [#449] dekell
HeaderMap) OccupiedEntry::remove_entry and
remove_entry_mult when multiple values are present. ([#446], [#449] dekellum)ByteStr and refactor of Authority ([#408], [#414] sbosnick)HeaderName to error instead of panic when input is too long ([#432] [#433] acfoltzer)StatusCode to encode values 100-999 without error. Use of the
unclassified range 600-999 remains discouraged. ([#144], [#438], [#443] quininer dekellum)String and &String fallible conversions to PathAndQuery ([#450] mkindahl)Authority (and Uri) to error instead of panic on unbalanced brackets
([#435], [#445] aeryz)Add extensions_ref and extensions_mut to request::Builder and response::Builder.
extensions_ref and extensions_mut to request::Builder and response::Builder.Add HeaderValue::from_maybe_shared, HeaderValue::from_maybe_shared_unchecked, Uri::from_maybe_shared, Authority::from_maybe_shared, and PathAndQuery::
Version::HTTP_3 constant.HeaderValue::from_maybe_shared, HeaderValue::from_maybe_shared_unchecked, Uri::from_maybe_shared, Authority::from_maybe_shared, and PathAndQuery::from_maybe_shared.request::Builder, response::Builder, and uri::Builder to use by-value methods instead of by-ref.HttpTryFrom trait to std::convert::TryFrom.HeaderMap::entry to no longer return a Result.HeaderMap::drain iterator to match the behavior of IntoIter.Authority::port to return an Option<Port> instead of Option<u16>.Uri::scheme to return Option<&Scheme> instead of Option<&str>.Uri::authority to return Option<&Authority> instead of Option<&str>.InvalidUriBytes, InvalidHeaderNameBytes, and InvalidHeaderValueBytes error types.HeaderValue::from_shared, HeaderValue::from_shared_unchecked, Uri::from_shared, Authority::from_shared, Scheme::from_shared, and PathAndQuery::from_shared.Authority::port_part.Uri::scheme_part and Uri::authority_part.Nothing published for this version
Fix possible double-free if header::Drain iterator is std::forgoten (#357).
header::Drain iterator is std::mem::forgoten (#357).header::ValueDrains are iterated on different threads (#362).HeaderMap::reserve capacity overflows (#360).Uris (#351).Allow % in IPv6 addresses in Uri (#343).
% in IPv6 addresses in Uri (#343).Fix compilation of HeaderName parsing on WASM targets (#324).
HeaderName parsing on WASM targets (#324).HttpTryFrom<HashMap> for HeaderMap (#326).http::header::HeaderValue as http::HeaderValue.Add Error::inner_ref() to view the kind of error
Error::inner_ref() to view the kind of error (#303)headers_ref() and headers_mut() methods to request::Builder and response::Builder (#293)Fix Uri to permit more characters in the path
Uri to permit more characters in the path (#296)Fix Uri::host() to include brackets of IPv6 literals
Uri::host() to include brackets of IPv6 literals (#292)scheme_str and port_u16 methods to Uri (#287)method_ref, uri_ref, and headers_ref to request::Builder (#284)Add Port struct (#252, #255, #265)
Port struct (#252, #255, #265)Uri builder (#219)Method no longer considered valid (#262)Uri equality when terminating question mark is present (#270)http::headers::{IterMut, ValuesMut} (#278)impl fmt::Display for HeaderName
fmt::Display for HeaderName (#249)uri::Authority parsing when there is no host after an @ (#248)Uri parsing to allow more characters in query strings (#247)Fix HeaderValue parsing to allow HTABs
HeaderValue parsing to allow HTABs (#244)Add From<&Self> for HeaderValue, Method, and StatusCode
From<&Self> for HeaderValue, Method, and StatusCode (#238)Uri::from_static (#240)impl HttpTryFrom for HeaderValue
impl HttpTryFrom<String> for HeaderValue (#236)Add additional HttpTryFrom impls
Add fuller set of PartialEq for Method
PartialEq for Method (#221)HeaderMap by using Box<[Entry]> instea of Vec (#224)Extensions by storing as Option<Box<AnyMap>> (#227)Iterator::size_hint for most iterators in header (#226)Add From for HeaderValue for most integer types (#218).
From<uN> for HeaderValue for most integer types (#218).Uri::into_parts() inherent method (same as Parts::from(uri)) (#214).Uris in authority-form to Parts and then back into Uri (#216).Authority parsing to reject multiple port sections (#215).Uris into illegal forms (#220).Add HeaderName::from_static() constructor (#195).
HeaderName::from_static() constructor (#195).Authority::from_static() constructor (#186).From<HeaderName> for HeaderValue (#184).header::Keys (#201).Add websocket handshake related header constants (#162).
Authority with an empty string now returns an error (#164).PartialEq<u16> for StatusCode (#153).HttpTryFrom<&Uri> for Uri (#165).FromStr for Method (#167).HttpTryFrom<String> for Uri (#171).into_body fns to Request and Response (#172).Request::options (#177).Add PathAndQuery::from_static (#148).
map fn to Request and Response (#151).Add Scheme associated consts for common protos.
Scheme associated consts for common protos.Add Uri accessor for scheme part.
Provide Uri accessors for parts
[#144]: https://github.com/hyperium/http/issues/144 [#408]: https://github.com/hyperium/http/pull/408 [#414]: https://github.com/hyperium/http/pull/41
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →