NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #520 most downloaded on crates.io
Simple, safe HTTP client
Last release 25 days ago
13 Sep 2026
Release timing varies
gaps range from 8 days to 5 months
Nearly every release is documented
notes for 57 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
115 releases · first in 2018
Bump ureq-proto to 0.6.3 (fixes network-path references in redirects)
Bump ureq-proto to 0.6.2 (fixes to parsing and headers) #1199
One column per quarter.
Seal RequestExt (technically breaking) #1189
Bump MSRV 1.71 -> 1.85, edition 2024 #1167
Switch archived utf-8 crate for utf8-zero #1163
Strip Content-Encoding/Content-Length headers after decompression #1156
Set content-type with new Multipart form #1133
Fix short read with multi-byte charset #1131
Fix bug when query is after host "example.com?query" #1115
Fix regression in MSRV (hold back native-tls) #1113
DECISION: webpki-roots and webpki-root-certs goes from pre-release (0.26) to stable release (1.0.0). This is potentially a big change for ureq users.
DECISION: webpki-roots and webpki-root-certs goes from pre-release (0.26) to stable release (1.0.0). This is potentially a big change for ureq users. We release this as semver minor.
Chunked transfer handle abrupt close after 0\r\n #1074
public_suffix for CookieStore #1063Fix bug setting cookies in redirects #1055
Bump rustls-platform-verifier to 0.5.0
Allow body for all methods when using http-crate API #1035
Fix incorrect parsing bug "missing http version" #1026
Allow non-standard HTTP methods #1018
Avoid percent encoding some query parameter chars #1004
Fix incorrect reading of valid utf8 #992
Manually unroll some macros to regular code #978
rustls-no-provider when disabling ring #973Use the same data in CONNECT and Host header for proxied requests #967
Remove dependency on once_cell #959
Do not enable json (by default breaking, but it was a mistake) #948
Replace RequestBuilder Deref with explicit wrappers #944
url crate #943Config::save_redirect_history #939TlsConfig::unversioned_rustls_crypto_provider() #931
TlsConfig::unversioned_rustls_crypto_provider() #931
rustls-no-provider to compile without ring #931Default to TooManyRedirects error #916
TooManyRedirects error #916
ConfigBuilder::max_redirects_will_error() #916SendBody::into_reader() #914AutoHeaderValue #896Re-export ureq_proto::ArrayVec #891
ResponseExt::get_uri() #884Config and TlsConfig #886Transport and Resolver traits to unversioned #881hoot -> ureq_proto#872disable_verification for TLS #871vendored feature flag to get vendored native-tls #866Remove pub-field config structs in favor of builders #848
Ground up rewrite based on the http crate API.
Do not use multi-version deps (>=x.x.x) #907
Bump MSRV 1.67 -> 1.71 because rustls will soon adopt it #905
Fixes for changes to cargo-deny #882
default ureq Rustls tls config updated to avoid panic for applications that activate the default Rustls aws-lc-rs feature without setting a process-wi
ureq Rustls tls config updated to avoid panic for applications
that activate the default Rustls aws-lc-rs feature without setting
a process-wide crypto provider. ureq will now use *ring* in this
circumstance instead of panicking.Update Rustls from 0.22 to 0.23 - this may be a breaking change if your application depends on Rustls 0.22 (e.g. to provide a custom rustls::ClientCon…
rustls::ClientConfig to ureq). See the Rustls 0.23.0
changelog for a list of breaking API changes #753ureq TLS config, or constructs its own rustls::ClientConfig
with rustls::ClientConfig::builder() you must ensure the Rustls
aws-lc-rs feature is not activated, or set the process default
cryptography provider before constructing any configs. See the Rustls
CryptoProvider docs for more information #753Update deps base64 0.22, rustls to 0.22.4 #747 #748
base64 0.22, rustls to 0.22.4 #747 #748
hootbin is optional dep. Tests must be run with feature testdeps #729
hootbin is optional dep. Tests must be run with feature testdeps #729Update deps (cookie 0.18, cookie_store 0.21, unpin url). #722
cookie 0.18, cookie_store 0.21, unpin url). #722## Fixed * MSRV 1.61 with CI tests
## Fixed * docs.rs docs
Replace dependency on httpbin.org for tests/doc-tests. #703
Unbreak feature http-interop. This feature is version locked to http crate 0.2
http-interop. This feature is version locked to
http crate 0.2http-crate. This feature is for http crate 1.0proxy-from-env to detect proxy settings for
global Agent (ureq::get)Broken rustls dep (introduced new function in patch version) #677
http::request::Parts #669Fix regression in IPv6 handling #635
Updated serde_json dependency constraint to be >=1.0.97 #630
Pass User-Agent when connecting to proxy #597
Non-empty connection pools were never dropped #583
gzip: examine Content-Length header before removing #578
Request::query_pairs() - make query params from an Iterator of pairs #519
Warn if requests aren't sent #490
Deprecate re-exported serde types #446
gzip feature by default #455gzip and brotli feature flags to enable decompression #453 #421Authorization header on redirects #445send_json to impl Serializable #446native-tls feature provides an alternative TLS backend #449 #391Don't panic when given an invalid DNS name #436
Make test mocks of Response more accurate by removing newline #423
Downgrade logging on info level to debug #409
Bugfix: don't reuse conns with bytes pending from server #372. This reduces Transport errors when using an Agent for connection pooling.
Bugfix: allow status lines without a reason phrase #316
Bugfix: Apply deadline across redirects. #313
Fix handling of 308 redirects (port from 1.5.4 branch)
Methods that formerly returned Response now return Result . You'll need to change all instances of .call() to .call()? or handle errors using a match
.call() to .call()? or handle
errors using a match statement.options(url), trace(url), and patch(url).
To send requests with those verbs use request(method, url).&mut self instead of mut self, and is no longer needed.
You can simply delete any calls to Request::build.let v: serde_json::Value = response.into_json();.Do more validation on status line. #266
Refactor Error to use an enum for easier extraction of status code errors.
Your coding agent can read these notes before it upgrades. Set up the MCP server →