reqwest breaking changes
cargo44 curated breaking changes across major versions of reqwest. Use this as a migration checklist before bumping dependencies.
- 0.8.8 \u2192 0.9.0breaking
Changed `ClientBuilder::danger_disable_hostname_verification()`
- 0.8.8 \u2192 0.9.0breaking
Changed `multipart::Part::mime()` to `mime_str()`.
- 0.8.8 \u2192 0.9.0breaking
Changed `RequestBuilder` to be a by-value builder of by-ref.
- 0.8.8 \u2192 0.9.0breaking
Changed `ClientBuilder` to be a by-value builder instead of by-ref.
- 0.8.8 \u2192 0.9.0removed
The upgrade to `hyper` 0.12 means a temporary removal of the typed headers.
- 0.8.8 \u2192 0.9.0removed
Removed the `unstable` cargo-feature, and moved `reqwest::unstable::async`
- 0.7.3 \u2192 0.8.0behavior
A default timeout for `reqwest::Client` is used set to 30 seconds (#181)
- 0.7.3 \u2192 0.8.0breaking
`Client::new` no longer returns a `Result`.
- 0.7.3 \u2192 0.8.0breaking
`async::Response::body()` now returns a reference to the body instead of consuming the `Response`.
- 0.7.3 \u2192 0.8.0breaking
`ClientBuilder` and `RequestBuilder` hold their errors till consumed (#189).
- 0.6.2 \u2192 0.7.0api
`mime` has been upgraded to 0.3, with a very different API.
- 0.6.2 \u2192 0.7.0breaking
The `RequestBuilder` methods all take `&mut self`, instead of moving the builder, and return `&mut Self`. (This shouldn't actually affect most people who are building a request in a single chain.)
- 0.6.2 \u2192 0.7.0breaking
`Error::cause()` now returns `Error::get_ref().cause()`.
- 0.6.2 \u2192 0.7.0breaking
hyper has been upgraded to 0.11, so `header`, `StatusCode`, and `Method` have breaking changes.
- 0.6.2 \u2192 0.7.0breaking
`Response::status()` returns a `StatusCode` instead of `&StatusCode`.
- 0.6.2 \u2192 0.7.0breaking
All methods on `Client` that start a `RequestBuilder` now return a `Result` immediately, instead of delaying the URL parse error for later.
- 0.6.2 \u2192 0.7.0removed
All configuration methods have been removed from the `Client`, and moved to the `ClientBuilder`.
- 0.6.2 \u2192 0.7.0removed
The `HttpVersion` type was completely removed.
- 0.5.2 \u2192 0.6.0api
`RedirectPolicy::custom` receives different arguments, and returns different values. See the [docs](https://docs.rs/reqwest/0.6.0/reqwest/struct.RedirectPolicy.html#method.custom) for an example.
- 0.5.2 \u2192 0.6.0breaking
The publicly exposed peer dependency serde was upgraded. It is now `[email protected]`. Mismatched version will give a compiler error that a serde trait is not implemented.
- 0.5.2 \u2192 0.6.0breaking
`Error` is no longer an `enum`, but an opaque struct. Details about it can be checked with `std::error::Error::cause()`, and methods on `reqwest::Error` include `is_http()`, `is_serialization()`, and `is_redirect()`.
- 0.4.0 \u2192 0.5.0behavior
The only breaking change is a behavioral one, all programs should still compile without modification. The automatic GZIP decoding could interfere in cases where a user was expecting the GZIP bytes, either to save to a file or decode themselves. To restore this functionality, set `client.gzip(false)`.
- 0.1.0 \u2192 0.2.0breaking
`Error::Serialize` now has a `Box<StdError + Send + Sync>` instead of `Box<StdError>`
- 0.1.0 \u2192 0.2.0breaking
`RequestBuilder` no longer has an associated lifetime (was `RequestBuilder<'a>`)
- 0.12.28 \u2192 0.13.0behavior
`rustls` is now the default TLS backend, instead of `native-tls`.
- 0.12.28 \u2192 0.13.0behavior
`query` and `form` are now crate features, disabled by default.
- 0.12.28 \u2192 0.13.0behavior
`rustls` crypto provider defaults to aws-lc instead of _ring_. (`rustls-no-provider` exists if you want a different crypto provider)
- 0.12.28 \u2192 0.13.0breaking
To use different roots, call `tls_certs_only(your_roots)`.
- 0.12.28 \u2192 0.13.0breaking
`native-tls` now includes ALPN. To disable, use `native-tls-no-alpn`.
- 0.12.28 \u2192 0.13.0breaking
**Breaking changes**:
- 0.12.28 \u2192 0.13.0breaking
For example, prefer `tls_backend_rustls()` over `use_rustls_tls()`.
- 0.12.28 \u2192 0.13.0removed
rustls roots features removed, `rustls-platform-verifier` is used by default.
- 0.12.28 \u2192 0.13.0removed
Long-deprecated methods and crate features have been removed (such as `trust-dns`, which was renamed `hickory-dns` a while ago).
- 0.12.28 \u2192 0.13.0renamed
`rustls-tls` has been renamed to `rustls`.
- 0.12.28 \u2192 0.13.0renamed
Many TLS-related methods renamed to improve autocompletion and discovery, but previous name left in place with a "soft" deprecation. (just documented, no warnings)
- 0.11 \u2192 0.12api
Http/hyper 1.0 upgrade. TLS backend features renamed; default TLS now rustls (was native-tls).
MigrationFor native-tls, enable `features = ["native-tls"]` explicitly. Blocking API shape unchanged for most users.
- 0.10.4 \u2192 0.10.5behavior
Enable TCP_NODELAY by default.
- 0.10.4 \u2192 0.10.5breaking
This is technically a breaking change, but was a mistake. It was not valid to convert from an `http::Request` to a `reqwest::Request` in an infallible fashion. It would panic if the conversion was not possible. Instead, the implementation has been changed to `TryFrom` to indicate it could fail.
- 0.10.4 \u2192 0.10.5breaking
Implement `TryFrom<http::Request>` for `Request`.
- 0.10.4 \u2192 0.10.5breaking
Implement `TryFrom<http::Request>` for `blocking::Request`.
- 0.10.4 \u2192 0.10.5breaking
Add `Response::content_length` for WASM target.
- 0.10.4 \u2192 0.10.5breaking
Add `ClientBuilder::pool_idle_timeout` option.
- 0.10.4 \u2192 0.10.5deprecated
Add `ClientBuilder::pool_max_idle_per_host` option, deprecate `max_idle_per_host`.
- 0.10.4 \u2192 0.10.5removed
Removes `From<http::Request>` for `Request`.
Get this data programmatically \u2014 free, no authentication.
curl https://depscope.dev/api/breaking/cargo/reqwest