All Versions
Latest Version
Avg Release Cycle
32 days
Latest Release
756 days ago

Changelog History
Page 7

  • v0.12.9 Changes

    August 28, 2018
    ๐Ÿ› Bug Fixes
    • http2: allow TE "trailers" request headers (24f11a42, closes #1642)
    • server: properly handle keep-alive for HTTP/1.0 (1448e406, closes #1614)
    ๐Ÿ”‹ Features
    • client: add max_idle_per_host configuration option (a3c44ded)
    • server: add Server::with_graceful_shutdown method (168c7d21, closes #1575)
  • v0.12.8 Changes

    August 10, 2018
    ๐Ÿ› Bug Fixes
    • server: coerce responses with HTTP2 version to HTTP/1.1 when protocol is 1.x (195fbb2a)
    ๐Ÿ”‹ Features
    • server:
      • add Builder::http1_keepalive method (b459adb4)
      • add Server::from_tcp constructor (bb4c5e24, closes #1602)
      • add remote_addr method to AddrStream (26f3a5ed)
  • v0.12.7 Changes

    July 23, 2018
    ๐Ÿ› Bug Fixes
    • http1: reduce closed connections when body is dropped (6530a00a)
  • v0.12.6 Changes

    July 11, 2018
    ๐Ÿ”‹ Features
    • client:
      • add ability to include SO_REUSEADDR option on sockets (13862d11, closes #1599)
      • implement rfc 6555 (happy eyeballs) (02a9c29e)
    • server: add Builder::http1_pipeline_flush configuration (5b5e3090)
  • v0.12.5

    June 28, 2018
  • v0.12.4 Changes

    June 28, 2018
    ๐Ÿ› Bug Fixes
    • client:
      • fix keep-alive header detection when parsing responses (c03c39e0)
      • try to reuse connections when pool checkout wins (f2d464ac)
  • v0.12.3 Changes

    June 25, 2018
    ๐Ÿ”‹ Features
    • client: enable CONNECT requests through the Client (2a3844ac)
    • http2: quickly cancel when receiving RST_STREAM (ffdb4788)
  • v0.12.2 Changes

    June 19, 2018
    ๐Ÿ› Bug Fixes
    • http2:
      • implement graceful_shutdown for HTTP2 server connections (b7a0c2d5, closes #1550)
      • send trailers if Payload includes them (3affe2a0)
    • lib: return an error instead of panic if execute fails (482a5f58, closes #1566)
    • server:
      • fix debug assert failure when kept-alive connections see a parse error (396fe80e)
      • correctly handle CONNECT requests (d7ab0166)
    ๐Ÿ”‹ Features
    • body:
    • client: add set_scheme, set_host, and set_port for Destination (27db8b00, closes #1564)
    • error: add Error::cause2 and Error::into_cause (bc5e22f5, closes #1542)
    • http1: Add higher-level HTTP upgrade support to Client and Server (#1563) (fea29b29, closes #1395)
    • http2:
      • implement flow control for h2 bodies (1c3fbfd6, closes #1548)
      • Add content_length() value to incoming h2 Body (9a28268b, closes #1546)
      • set Content-Length header on outgoing messages (386fc0d7, closes #1547)
      • Strip connection headers before sending (f20afba5)
  • v0.12.1 Changes

    June 04, 2018
    ๐Ÿ› Bug Fixes
    • server: add upgrading process to poll_without_shutdown() (#1530) (c6e90b7b)
    ๐Ÿ”‹ Features
    • client: implement Clone for Destination (15188b7c)
    • server:
      • add http1_writev config option for servers (810435f1, closes #1527)
      • add http1_only configuration (14d9246d, closes #1512)
      • add try_into_parts() to conn::Connection (#1531) (c615a324)
  • v0.12.0 Changes

    June 01, 2018
    ๐Ÿ”‹ Features
    ๐Ÿ› Bug Fixes
    • lib: remove deprecated tokio-proto APIs (a37e6b59)
    • server: panic on max_buf_size too small (aac250f2)
    ๐Ÿ’ฅ Breaking Changes
    • Body::is_empty() is gone. Replace with Body::is_end_stream(), from the Payload trait.


    • ๐Ÿ›ฐ Each payload chunk must implement Buf, instead of just AsRef<[u8]>.


    • Replace any references of hyper::client::FutureResponse to hyper::client::ResponseFuture.


    • The Service trait has changed: it has some changed associated types, and call is now bound to &mut self.

    The NewService trait has changed: it has some changed associated types, and new_service now returns a Future.

    Client no longer implements Service for now.

    hyper::server::conn::Serve now returns Connecting instead of Connections, since new_service can now return a Future. The Connecting is a future wrapping the new service future, returning a Connection afterwards. In many cases, Future::flatten can be used.


    • The Server is no longer created from Http::bind, nor is it run. It is a Future that must be polled by an Executor.

    The hyper::server::Http type has move to hyper::server::conn::Http.


    • ๐Ÿ”ง Client:new(&handle) and Client::configure() are now Client::new() and Client::builder().


    • Error is no longer an enum to pattern match over, or to construct. Code will need to be updated accordingly.

    For body streams or Services, inference might be unable to determine what error type you mean to return.


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


    • Custom connectors should now implement Connect directly, instead of Service.

    Calls to connect no longer take Uris, but Destination. There are scheme, host, and port methods to query relevant information.

    The returned future must be a tuple of the transport and Connected. If no relevant extra information is needed, simply return Connected::new().


    • All code that was generic over the body as Stream must be adjusted to use a Payload instead.

    hyper::Body can still be used as a Stream.

    Passing a custom impl Stream will need to either implement Payload, or as an easier option, switch to Body::wrap_stream.

    Body::pair has been replaced with Body::channel, which returns a hyper::body::Sender instead of a futures::sync::mpsc::Sender.


    • Method, Request, Response, StatusCode, Version, and Uri have been replaced with types from the http crate.


    • The variants of Method are now uppercase, for instance, Method::Get is now Method::GET.
    • The variants of StatusCode are now uppercase, for instance, StatusCode::Ok is now StatusCode::OK.
    • The variants of Version are now uppercase, for instance, HttpVersion::Http11 is now Version::HTTP_11.
      • The typed headers from hyper::header are gone for now.

    The http::header module is re-exported as hyper::header.

    For example, a before setting the content-length:

      use hyper::header::ContentLength;

    And now after, with the http types:

      use hyper::header::{CONTENT_LENGTH, HeaderValue};
      res.headers_mut().insert(CONTENT_LENGTH, HeaderValue::from_static("15"));


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

    The typed headers don't exist, and so they do not need the mime crate.

    To continue using mime for other purposes, add it directly to your Cargo.toml as a dependency.


    • โœ‚ Removed compat cargo feature, and compat related API. This was the conversion methods for hyper's types to and from http crate's types.


    • โœ‚ Removed deprecated APIs: (a37e6b59)
      • The server-proto cargo feature, which included impl ServerProto for Http, and related associated types.
      • client::Config::no_proto()
      • tokio_proto::streaming::Body::from(hyper::Body)
      • hyper::Body::from(tokio_proto::streaming::Body)
      • hyper::Body::from(futures::sync::mpsc::Receiver)
      • Http::no_proto()