hyper breaking changes

cargo

147 curated breaking changes across major versions of hyper. Use this as a migration checklist before bumping dependencies.

147
changes
Breaking changes by transition
  • 1.7.0 \u2192 1.8.0breaking

    The HTTP/2 client connection no longer allows an executor

  • 1.5.2 \u2192 1.6.0breaking

    `http2::Builder::max_local_error_reset_streams()` now takes `&mut self` and returns `&mut Self`. In practice, this shouldn't break almost anyone. It was the wrong receiver and return types.

  • 1.1.0 \u2192 1.2.0breaking

    The returned lifetime from `Sleep::downcast_mut_pin()`

  • 1.0.0 \u2192 1.0.1breaking

    Pin is #[fundamental], so providing a Read/Write impl for it theoretically conflicts

  • 1.0.0-rc.3 \u2192 1.0.0-rc.4breaking

    `client::conn::http2` types now use another generic for an `Executor`.

  • 1.0.0-rc.3 \u2192 1.0.0-rc.4breaking

    The Service::call function no longer takes a mutable reference to self.

  • 1.0.0-rc.3 \u2192 1.0.0-rc.4breaking

    Any IO transport type provided must now implement `hyper::rt::{Read, Write}` instead of

  • 1.0.0-rc.2 \u2192 1.0.0-rc.3api

    `hyper::client::conn::Http2::Builder::new` now requires an executor argument.

  • 1.0.0-rc.1 \u2192 1.0.0-rc.2breaking

    The return types for `Frame::into_data()` and `Frame::into_trailers()` have been changed from `Option<T>` to `Result<T, Self>`.

  • 1.0.0-rc.1 \u2192 1.0.0-rc.2breaking

    The return types of `Timer` have been changed.

  • 1.0.0-rc.1 \u2192 1.0.0-rc.2removed

    removes `server::conn::http2::Builder::with_executor()`

  • 0.14.19 \u2192 1.0.0-rc.1breaking

    A pooling client is in the hyper-util crate.

  • 0.14.19 \u2192 1.0.0-rc.1breaking

    The polling functions of the `Body` trait have been

  • 0.14.19 \u2192 1.0.0-rc.1breaking

    Either choose a version-specific `Connection` type, or

  • 0.14.19 \u2192 1.0.0-rc.1breaking

    Pick a version-specific connection, or use the combined

  • 0.14.19 \u2192 1.0.0-rc.1breaking

    A channel body will be available in `hyper-util`.

  • 0.14.19 \u2192 1.0.0-rc.1breaking

    Use the types from `http-body-util`.

  • 0.14.19 \u2192 1.0.0-rc.1breaking

    Use `connect` from `hyper-util`.

  • 0.14.19 \u2192 1.0.0-rc.1breaking

    Tower `Service` utilities will exist in `hyper-util`.

  • 0.14.19 \u2192 1.0.0-rc.1removed

    Change any manual `impl tower::Service` to implement `hyper::service::Service` instead. The `poll_ready` method has been removed.

  • 0.14.19 \u2192 1.0.0-rc.1renamed

    The trait has been renamed.

  • 1.0.0-rc.4 \u2192 1.0.0behavior

    HTTP/2 server builder now has a default max concurrent streams. This is a

  • 1.0.0-rc.4 \u2192 1.0.0breaking

    The format no longer prints the error chain. Be sure to

  • 1.0.0-rc.4 \u2192 1.0.0breaking

    Do not build any logic depending on the exact types of

  • 1.0.0-rc.4 \u2192 1.0.0breaking

    If you use client HTTP/1 upgrades, you must call

  • 1.0.0-rc.4 \u2192 1.0.0breaking

    Upgrade to `http` 1.0.

  • 1.0.0-rc.4 \u2192 1.0.0breaking

    The `ReasonPhrase::from_bytes_unchecked()` method is

  • 1.0.0-rc.4 \u2192 1.0.0renamed

    (From previous RCs) `ExecutorClient` is renamed to

  • 0.8.1 \u2192 0.9.0breaking

    The re-exported Url type has breaking changes.

  • 0.7.2 \u2192 0.8.0breaking

    mime 0.2 depends on serde 0.7, so any instances of

  • 0.6.16 \u2192 0.7.0api

    LanguageTags api is changed.

  • 0.6.16 \u2192 0.7.0breaking

    This adds 2 required methods to the `NetworkStream`

  • 0.6.5 \u2192 0.6.7breaking

    Any custom implementation of NetworkStream must now

  • 0.6.1 \u2192 0.6.2breaking

    Access-Control-Allow-Origin does no longer use Url

  • 0.6.1 \u2192 0.6.2breaking

    Technically a break, since `Response::new()` takes an

  • 0.6.15 \u2192 0.6.16breaking

    `RequestBuilder<U>` should be replaced by `RequestBuilder`.

  • 0.6.10 \u2192 0.6.11api

    This changes the signature of HttpWriter.end(),

  • 0.5.2 \u2192 0.6.0breaking

    `hyper::client::request::Response` is no longer generic

  • 0.5.2 \u2192 0.6.0breaking

    A new variant `Http2` added to a public enum

  • 0.5.2 \u2192 0.6.0breaking

    Adds a new variant to public Error enum. The proper fix

  • 0.5.2 \u2192 0.6.0breaking

    parse_header returns Result instead of Option, related

  • 0.5.2 \u2192 0.6.0breaking

    Connectors and Protocols passed to the `Client` must

  • 0.5.2 \u2192 0.6.0breaking

    Server::https was changed to allow any implementation

  • 0.5.2 \u2192 0.6.0breaking

    AcceptLanguage and ContentLanguage use LanguageTag now,

  • 0.5.0 \u2192 0.5.1breaking

    Error enum extended. Return type of header/shared/

  • 0.4.0 \u2192 0.5.0breaking

    Adding a new required method to a public trait is a

  • 0.4.0 \u2192 0.5.0breaking

    Usage of Response.deconstruct() and construct() now use

  • 0.4.0 \u2192 0.5.0breaking

    If you use deref! from the header module, you'll need

  • 0.4.0 \u2192 0.5.0breaking

    Any custom Connectors will need to change to &self in

  • 0.3.16 \u2192 0.4.0breaking

    Upgrade header Protocol changed.

  • 0.3.16 \u2192 0.4.0breaking

    Add variant to Access-Control-Allow-Origin enum

  • 0.3.16 \u2192 0.4.0breaking

    Adds a variant to `hyper::Error`, which may break any

  • 0.3.16 \u2192 0.4.0breaking

    `from_one_raw_str()` returns `None` on empty values.

  • 0.3.16 \u2192 0.4.0removed

    The terms `Http` and `Error` have been removed from the Error

  • 0.3.7 \u2192 0.3.8removed

    Removed impl_header!() and impl_list_header!() macros,

  • 0.3.14 \u2192 0.3.15removed

    This removes the trait `IntoBody`, and instead using

  • 0.3.10 \u2192 0.3.11behavior

    For people using the default HttpConnector and Client,

  • 0.3.10 \u2192 0.3.11breaking

    `AccessControlAllowHeaders` and `AccessControlRequestHeaders` values

  • 0.3.10 \u2192 0.3.11breaking

    `If-Match`, `If-None-Match` and `Vary` item variant name changed to `Items`

  • 0.3.10 \u2192 0.3.11breaking

    `Etag` header field is now `ETag` header field

  • 0.3.0 \u2192 0.3.1breaking

    Several public functions and types in the `http` module

  • 0.2.1 \u2192 0.3.0breaking

    added requirement that all HeaderFormat implementations

  • 0.2.1 \u2192 0.3.0breaking

    Check the docs. Everything was touched.

  • 0.14.18 \u2192 0.14.19behavior

    `hyper_clientconn_options_new` no longer sets the `http1_preserve_header_case` connection option by default.

  • 0.14.18 \u2192 0.14.19breaking

    **ffi (unstable):**

  • 0.13.9 \u2192 0.14.0behavior

    All optional features have been disabled by default.

  • 0.13.9 \u2192 0.14.0breaking

    This puts all HTTP/2 methods and support behind an

  • 0.13.9 \u2192 0.14.0breaking

    This puts all HTTP/1 methods and support behind an

  • 0.13.9 \u2192 0.14.0breaking

    The HTTP client of hyper is now an optional feature. To

  • 0.13.9 \u2192 0.14.0breaking

    The HTTP server code is now an optional feature. To

  • 0.13.9 \u2192 0.14.0breaking

    The method `Body::on_upgrade()` is gone. It is

  • 0.13.9 \u2192 0.14.0breaking

    hyper depends on `tokio` v1 and `bytes` v1.

  • 0.13.9 \u2192 0.14.0breaking

    hyper no longer emits `log` records automatically.

  • 0.13.9 \u2192 0.14.0breaking

    Custom resolvers used with `HttpConnector` must change

  • 0.13.9 \u2192 0.14.0removed

    Removed `http1_writev` methods from `client::Builder`,

  • 0.12.35 \u2192 0.13.0behavior

    The server's behavior will now by default close

  • 0.12.35 \u2192 0.13.0breaking

    All usage of `hyper::body::Payload` should be replaced

  • 0.12.35 \u2192 0.13.0breaking

    Any type passed to the `executor` builder methods must

  • 0.12.35 \u2192 0.13.0breaking

    All usage of `hyper::Chunk` should be replaced with

  • 0.12.35 \u2192 0.13.0breaking

    Using a `Body` as a `Stream`, and constructing one via

  • 0.12.35 \u2192 0.13.0breaking

    Calls to `GaiResolver::new` and `HttpConnector::new` no

  • 0.12.35 \u2192 0.13.0breaking

    All usage of `hyper::client::connect::Destination`

  • 0.12.35 \u2192 0.13.0breaking

    Connectors no longer return a tuple of

  • 0.12.35 \u2192 0.13.0breaking

    Passing a `Stream` to `Server::builder` or

  • 0.12.35 \u2192 0.13.0breaking

    Usage of `send_data` should either be changed to

  • 0.12.35 \u2192 0.13.0breaking

    Any manual implementations of `Connect` must instead

  • 0.12.35 \u2192 0.13.0breaking

    The `Resolve` trait is gone. All custom resolvers should

  • 0.12.35 \u2192 0.13.0breaking

    All usage of async traits (`Future`, `Stream`,

  • 0.11.27 \u2192 0.12.0breaking

    `tokio_proto::streaming::Body::from(hyper::Body)`

  • 0.11.27 \u2192 0.12.0breaking

    `Body::is_empty()` is gone. Replace with

  • 0.11.27 \u2192 0.12.0breaking

    Each payload chunk must implement `Buf`, instead of

  • 0.11.27 \u2192 0.12.0breaking

    Replace any references of

  • 0.11.27 \u2192 0.12.0breaking

    The `Service` trait has changed: it has some changed

  • 0.11.27 \u2192 0.12.0breaking

    The `Server` is no longer created from `Http::bind`,

  • 0.11.27 \u2192 0.12.0breaking

    `Client:new(&handle)` and `Client::configure()` are now

  • 0.11.27 \u2192 0.12.0breaking

    `Error` is no longer an enum to pattern match over, or

  • 0.11.27 \u2192 0.12.0breaking

    All uses of `Handle` now need to be new-tokio `Handle`.

  • 0.11.27 \u2192 0.12.0breaking

    Custom connectors should now implement `Connect`

  • 0.11.27 \u2192 0.12.0breaking

    All code that was generic over the body as `Stream` must

  • 0.11.27 \u2192 0.12.0breaking

    `Method`, `Request`, `Response`, `StatusCode`,

  • 0.11.27 \u2192 0.12.0breaking

    The variants of `Method` are now uppercase, for instance, `Method::Get` is now `Method::GET`.

  • 0.11.27 \u2192 0.12.0breaking

    The variants of `StatusCode` are now uppercase, for instance, `StatusCode::Ok` is now `StatusCode::OK`.

  • 0.11.27 \u2192 0.12.0breaking

    The variants of `Version` are now uppercase, for instance, `HttpVersion::Http11` is now `Version::HTTP_11`.

  • 0.11.27 \u2192 0.12.0breaking

    The typed headers from `hyper::header` are gone for now.

  • 0.11.27 \u2192 0.12.0breaking

    The `mime` crate is no longer re-exported as `hyper::mime`.

  • 0.11.27 \u2192 0.12.0breaking

    The `server-proto` cargo feature, which included `impl ServerProto for Http`, and related associated types.

  • 0.11.27 \u2192 0.12.0breaking

    `client::Config::no_proto()`

  • 0.11.27 \u2192 0.12.0breaking

    `hyper::Body::from(tokio_proto::streaming::Body)`

  • 0.11.27 \u2192 0.12.0breaking

    `hyper::Body::from(futures::sync::mpsc::Receiver)`

  • 0.11.27 \u2192 0.12.0breaking

    `Http::no_proto()`

  • 0.11.27 \u2192 0.12.0removed

    Removed deprecated APIs:

  • 0.11.27 \u2192 0.12.0removed

    Removed `compat` cargo feature, and `compat` related API. This was the conversion methods for hyper's

  • 0.10.9 \u2192 0.11.0breaking

    The fields of the `Host` header are no longer

  • 0.10.9 \u2192 0.11.0breaking

    The name of `RequestUri` has changed to `Uri`. It is no

  • 0.10.9 \u2192 0.11.0breaking

    `Server` is no longer the primary entry point. Instead,

  • 0.10.9 \u2192 0.11.0breaking

    The `Preference` header had a typo in a variant and it's string representation,

  • 0.10.9 \u2192 0.11.0breaking

    This makes `Request.remote_addr` an

  • 0.10.9 \u2192 0.11.0breaking

    The `Url` type is no longer used. Any instance in the

  • 0.10.9 \u2192 0.11.0breaking

    If you were explicitly checking the `StatusCode`, such as

  • 0.10.9 \u2192 0.11.0breaking

    `Origin.scheme` and `Origin.host` now return `Option`s, since the `Origin` could be `null`.

  • 0.10.9 \u2192 0.11.0breaking

    The `Encoding` enum has an additional variant, `Trailers`.

  • 0.10.9 \u2192 0.11.0breaking

    The `fmt_header` method has changed to take a different

  • 0.10.9 \u2192 0.11.0breaking

    The `link_extensions` methods of the `Link` header are

  • 0.10.9 \u2192 0.11.0breaking

    `HttpDate` no longer has public fields. Convert between

  • 0.10.9 \u2192 0.11.0breaking

    Any use of `Quality(num)` should change to `q(num)`.

  • 0.10.9 \u2192 0.11.0breaking

    The `Cookie` header is no longer a wrapper over a

  • 0.10.9 \u2192 0.11.0breaking

    Some headers used `UniCase`, but now use

  • 0.10.9 \u2192 0.11.0breaking

    To use `RawStatus`, you must enable the `raw_status`

  • 0.10.9 \u2192 0.11.0breaking

    Most uses of `mime` will likely break. There is no more

  • 0.10.9 \u2192 0.11.0breaking

    All usage of `status.class()` should change to

  • 0.10.9 \u2192 0.11.0breaking

    LanguageTag used to be at the crate root, but it is now

  • 0.10.9 \u2192 0.11.0breaking

    `Header::parse_header` now receives `&Raw`, instead of

  • 0.10.9 \u2192 0.11.0breaking

    A big sweeping set of breaking changes.

  • 0.10.9 \u2192 0.11.0breaking

    This adds a new variant to the `Encoding` enum, which

  • 0.10.9 \u2192 0.11.0removed

    `Headers.remove()` used to return a `bool`,

  • 0.10.9 \u2192 0.11.0removed

    Removes the undocumented `from_u16` function. Use

  • 0.10.9 \u2192 0.11.0removed

    This removes several deprecated methods for converting

  • 0.10.1 \u2192 0.10.2breaking

    This technically will cause code that a calls

  • 0.9.14 \u2192 0.10.0breaking

    hyper will no longer provide OpenSSL support out of the

  • 0.9.14 \u2192 0.10.0breaking

    Usage of `with_proxy_config` will need to change to

  • 0.9.14 \u2192 0.10.0breaking

    There is no more `hyper::http::h2`.

  • 0.9.14 \u2192 0.10.0breaking

    There is no longer a `serde-serialization` feature.

  • 0.9.14 \u2192 0.10.0breaking

    The `Cookie` and `SetCookie` headers no longer use the

  • 0.1.7 \u2192 0.1.8breaking

    Change header `Cookie` to `Cookie`

  • 0.1.6 \u2192 0.1.7breaking

    Implementations of Header will need to adjust the

  • 0.1.12 \u2192 0.1.13removed

    This removes unregistered status codes from the enum. Use

  • 0.1.10 \u2192 0.1.11breaking

    for any consumers of the Etag header, since the entity

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cargo/hyper
hyper breaking changes — Cargo migration guide | DepScope