NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #70 most downloaded on crates.io
A protective and efficient HTTP library for all.
Last release 21 days ago
28 Aug 2026
Release timing varies
gaps range from 4 weeks to 7 months
Most releases are documented
notes for 39 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
12 years old
252 releases · first in 2014
client: EofReader by nature means the connection is closed
client: be resilient to invalid response bodies (75c71170, closes #640)
One column per quarter.
The breaking change isn't exposed in any usage of the Client API, but for anyone using HttpWriter directly, since this was technically a public method…
This changes the signature of HttpWriter.end(),
returning a EndError that is similar to std::io::IntoInnerError,
allowing HttpMessage to retrieve the broken connections and not panic.
The breaking change isn't exposed in any usage of the Client API,
but for anyone using HttpWriter directly, since this was technically
a public method, that change is breaking.
(ef15257b)
client: close connection when there is an Error
improve keep-alive of bodyless Responses
raw-fd: implement FromRawFd/FromRawSocket
headers: fix broken deserialization of headers
set_read_timeout and set_write_timeout, so those will
break. Most users who only use the provided streams should work with
no changes needed.Closes #315
(7d1f154c)
Nothing published for this version
tests: iter.connect() is now iter.join()
http: add optional serialization of common types via serde
serde (87de1b77)lint: change deny(missing_docs) to only apply for tests (5994a6f8, closes #600)
http: no longer keep alive for Http1.0 if no Connection header (ddecb262, closes #596)
(ed458628)
Response::new() takes an
additional argument. In practice, the only place that should have been
creating Responses directly is inside the Client, so it shouldn't
break anyone. If you were creating Responses manually, you'll need to
pass a Url argument.(82ed9092)
benches: adjust to missing set_ssl_verifier
set_ssl_verifier (eb38a11b)__Nonexhaustive variant to Error (7c0421e3)(99ff7e62)
(53bba6eb)
Client must
now also have a Sync bounds, but this shouldn't break default usage.(64e47b4b)
(195a89fa)
hyper::Error.(7c0421e3)
Http2 added to a public enum
hyper::Error.(48e9ca2f)
hyper::client::request::Response is no longer generic
over NetworkStream types. It no longer requires a generic type
parameter at all.(aa297f45)
Nothing published for this version
buffer: check capacity before resizing
Adding a new required method to a public trait is a breaking change.
(5d669399)
(49b5b8fd)
(62d96adc)
Any custom Connectors will need to change to &self in the connect method. Any Connectors that needed the mutability need to figure out a synchronization strategy.
Request::with_connector() takes a &NetworkConnector instead of &mut. Any uses of with_connector will need to change to passing &C.
(1b318724)
(a5d632b6)
AsRef<str> for Method (c29af729)hyper::Error, which may break any
exhaustive matches.(972b3a38)
Http and Error have been removed from the Error
type and its variants. HttpError should now be accessed as hyper::Error,
and variants like HttpIoError should be accessed as Error::Io.(9ba074d1)
(5e341714)
(f47d11b9)
from_one_raw_str() returns None on empty values.(a6974c99)
Nothing published for this version
Nothing published for this version
make test_module of header! optional (a5ce9c59, closes #490)
Do not parse empty values in list headers.
IntoBody, and instead using
Into<Body>, as it's more idiomatic. This will only have broken code
that had custom implementations of IntoBody, and can be fixed by
changing them to Into<Body>.(a2aefd9a)
http: Adjust httparse Request and Response lifetimes.
server: JoinHandle type parameter
handle keep-alive closing (d9187713, closes #437)
However, there were some breaking changes to the internals of NetworkConnectors. Specifically, they no longer return a NetworkStream, but instead a In…
AccessControlAllowHeaders and AccessControlRequestHeaders values
are case insensitive now. AccessControlAllowOrigin variants are now Any and
Value to match the other headers.(94f38950)
If-Match, If-None-Match and Vary item variant name changed to Items(38d297b1)
Etag header field is now ETag header field(4434ea6a)
For people using the default HttpConnector and Client, everything should continue to just work. If the Client has been used with a generic parameter, it should be removed.
However, there were some breaking changes to the internals of NetworkConnectors. Specifically, they no longer return a NetworkStream, but instead a Into<Box<NetworkStream + Send>>. All implementations of NetworkStream should continue to just work, however.
Possible breakages could come from the stricter usage of Send throughout the Client API.
(139a51f1)
README: Update to compile example against Rust beta
headers: Add CowStr as a temporary hack to build on beta.
Removed impl_header!() and impl_list_header!() macros, use new header!() macro.
buffer: zero out new capacity when buffer grows
buffer: get_buf to not return consumed part of buffer (04e3b565, closes #406)
http: read more before triggering TooLargeError (cb59f609, closes #389)
rustup: static bounds required on Type definition, trivial_casts
rustc 1.0.0-nightly (123a754cb 2015-03-24)
header: Fix charset parsing bug.
http module
have been removed. They have been replaced with 2 methods that handle
all of the http1 parsing.(b87bb20f)
(df756871)
(0fd6fcd7)
Nothing published for this version
rustup: str.split and associated type changes
Nothing published for this version
server: Drain requests on drop. (3d0f423e, closes #197, #309)
FromPrimitive methods to create them now. StatusCode and StatusClass can no
longer be casted to u16, use ToPrimitive methods now.
For example status.to_u16().unwrap() to get the status code number.(73978531)
net: don't stop the server when an SSL handshake fails with EOF
readme: Make the README client example work
headers: add limit to maximum header size that should be parsed (f18a8fb7, closes #256)
headers: Don't display q if q=1 in quality item. (91df2441, closes #281)
make Protocol search websocket unicase
rustup: update to newest fmt trait names and slice syntax
headers: make Schemes, Basic, Protocol public
Nothing published for this version
imports: Update TypeID import location to "any"
server: add a deconstruct method to Request.
server: Increase MAX_HEADER_FIELD_LENGTH to 4k
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →