Skip to content

Latest commit

 

History

History
937 lines (488 loc) · 39.7 KB

CHANGELOG.md

File metadata and controls

937 lines (488 loc) · 39.7 KB

v0.7.0 (2015-11-24)

Features

  • all: add socket timeouts (fec6e3e8)
  • headers:
    • Add Content-Disposition header (7623ecc2, closes #561)
    • Add Access-Control-Allow-Credentials header (19348b89, closes #655)
    • re-export CookiePair and CookieJar (799698ca)

Breaking Changes

  • This adds 2 required methods to the NetworkStream trait, set_read_timeout and set_write_timeout. Any local implementations will need to add them.

(fec6e3e8)

  • LanguageTags api is changed.

(c747f99d)

v0.6.16 (2015-11-16)

Bug Fixes

  • response: respond with a 500 if a handler panics (63c6762c)

Features

  • headers: Add Access-Control-Expose-Headers (f783e991)
  • server: Add hooks for HttpListener and HttpsListener to be started from existing listene (fa0848d4)

Breaking Changes

  • RequestBuilder<U> should be replaced by RequestBuilder.

(ff4a6070)

v0.6.15 (2015-10-09)

Bug Fixes

  • server: use a timeout for Server keep-alive (cdaa2547, closes #368)

Features

  • client: add patch method to Client builder interface (03827c31)

v0.6.14 (2015-09-21)

Bug Fixes

  • http:
    • Add a stream enum that makes it impossible to lose a stream (be4e7181)
    • Make sure not to lose the stream when CL is invalid (a36e44af)
  • server: use EmptyWriter for status codes that have no body (9b2998bd)
  • timeouts: remove rust #![feature] for socket timeouts (b8729698)

Features

  • headers: add PartialEq impl for Headers struct (76cbf384)

v0.6.13 (2015-09-02)

Bug Fixes

  • client: EofReader by nature means the connection is closed (32e09a04)

v0.6.12 (2015-09-01)

Bug Fixes

  • client: be resilient to invalid response bodies (75c71170, closes #640)
  • examples: "cargo test --features serde-serialization" (63608c49)
  • http: fix several cases in HttpReader (5c7195ab)

Features

  • server: Add Handler per-connection hooks (6b6182e8)

v0.6.11 (2015-08-27)

Bug Fixes

  • client: fix panics when some errors occured inside HttpMessage (ef15257b)
  • headers: case insensitive values for Connection header (341f8eae, closes #635)

Breaking Changes

  • 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)

v0.6.10 (2015-08-19)

Bug Fixes

  • client: close connection when there is an Error (d32d35bb)

Features

  • uri: implement fmt::Display for RequestUri () (80931cf4, closes #629)

v0.6.9 (2015-08-13)

Bug Fixes

  • client:
    • improve keep-alive of bodyless Responses (67c284a9)
    • improve HttpReader selection for client Responses (31f117ea, closes #436)
  • nightly: remove feature flag for duration (0455663a)

Features

  • headers: Content-Range header (af062ac9)
  • net: impl downcast methods for NetworkStream (without + Send) (1a91835a, closes #521)
  • server: add Request.ssl() to get underlying ssl stream (7909829f, closes #627)

v0.6.8 (2015-08-03)

Features

  • raw-fd: implement FromRawFd/FromRawSocket (664bde58)

v0.6.7 (2015-08-03)

Bug Fixes

  • headers: fix broken deserialization of headers (f5f5e1cb)

Features

  • net:
    • Implement NetworkConnector for closure to be more flexible (abdd4c5d)
    • add socket timeouts to Server and Client (7d1f154c, closes #315)

Breaking Changes

  • Any custom implementation of NetworkStream must now implement 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)

v0.6.5 (2015-07-23)

Bug Fixes

  • tests: iter.connect() is now iter.join() (d2e8b5dc)

Features

  • status:
    • implement Hash for StatusCode (d84f291a)
    • implement Hash for StatusCode (aa85f609)

v0.6.4 (2015-07-23)

Features

  • http: add optional serialization of common types via serde (87de1b77)

v0.6.3 (2015-07-08)

Bug Fixes

  • lint: change deny(missing_docs) to only apply for tests (5994a6f8, closes #600)

v0.6.2 (2015-07-06)

Bug Fixes

  • http: no longer keep alive for Http1.0 if no Connection header (ddecb262, closes #596)

Features

  • client: add url property Response (82ed9092)
  • headers: add strict-transport-security header (7c2e5124, closes #589)

Breaking Changes

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

(ed458628)

  • Technically a break, since 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)

v0.6.1 (2015-06-26)

Bug Fixes

  • benches: adjust to missing set_ssl_verifier (eb38a11b)
  • cargo: fix linking on OSX 10.10 (9af2b66f)
  • client: use Ssl instance in creation of SslStream (1a490e25)

v0.6.0 (2015-06-24)

Bug Fixes

  • client: check for drained stream in Response::drop (e689f203)

Features

  • client:
  • error: add private __Nonexhaustive variant to Error (7c0421e3)
  • headers:
  • http2:
    • implement message API for HTTP/2 (f0fe2c5a)
    • add new error variant for HTTP/2 (48e9ca2f)
    • add dependency on solicit (3122ffef)
  • langtags: use true language tags in headers (99ff7e62)
  • ssl: redesign SSL usage (53bba6eb)

Breaking Changes

  • AcceptLanguage and ContentLanguage use LanguageTag now, Language removed from Hyper.

(99ff7e62)

  • Server::https was changed to allow any implementation of Ssl. Server in general was also changed. HttpConnector no longer uses SSL; using HttpsConnector instead.

(53bba6eb)

  • Connectors and Protocols passed to the Client must now also have a Sync bounds, but this shouldn't break default usage.

(64e47b4b)

  • parse_header returns Result instead of Option, related code did also change

(195a89fa)

  • Adds a new variant to public Error enum. The proper fix is to stop matching exhaustively on hyper::Error.

(7c0421e3)

  • A new variant 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)

v0.5.2 (2015-06-01)

Bug Fixes

  • buffer: check capacity before resizing (b1686d1b)

v0.5.1 (2015-05-25)

Bug Fixes

  • client: don't close stream until EOF (a5e6174e, closes #543)

Features

  • client: implement Default trait for client (be041d91)
  • header: add ContentType::form_url_encoded() constructor (2c99d4e9)
  • headers: return hyper::Error instead of () from header components (5d669399)
  • http: add get_mut method to HttpReader (e64ce8c0)

Breaking Changes

  • Error enum extended. Return type of header/shared/ types changed.

(5d669399)

v0.5.0 (2015-05-12)

Bug Fixes

  • client:
    • dont call close() inside Request (3334fca2, closes #519)
    • keep the underlying connector when setting an SSL verifier (f4556d55, closes #495)
  • mock: adjust ChannelMockConnector connect method to compile (085d7b07)

Features

  • header:
    • add ContentType::json(), plaintext(), html(), jpeg(), and png() constructors (b6114ecd)
    • add Connection::close() and ::keep_alive() constructors (c2938fb4)
    • export __hyper__tm! macro so test modules work with header! (f64fb10b)
  • net:
    • remove mut requirement for NetworkConnector.connect() (1b318724)
    • add set_ssl_verifier method to NetworkConnector trait (a5d632b6)
  • server: check Response headers for Connection: close in keep_alive loop (49b5b8fd)

Breaking Changes

  • Usage of Response.deconstruct() and construct() now use a &mut Headers, instead of the struct proper.

(49b5b8fd)

  • If you use deref! from the header module, you'll need to switch to using __hyper__deref!.

(62d96adc)

  • Any custom Connectors will need to change to &self in the connect method. Any Connectors that needed the mutablity 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)

  • Adding a new required method to a public trait is a breaking change.

(a5d632b6)

v0.4.0 (2015-05-07)

Bug Fixes

  • net: ignore NotConnected error in NetworkStream.close (6be60052, closes #508)

Features

  • error: add Ssl variant to hyper::Error (972b3a38, closes #483)
  • headers:
    • Allow null value in Access-Control-Allow-Origin (5e341714)
    • Parse Upgrade header protocols further (f47d11b9, closes #480)
    • Add From header field (ce9c4af1)
    • Add Accept-Ranges header field (2dbe3f9b)
  • method: implement AsRef<str> for Method (c29af729)
  • server:
    • add Response.send to write a sized body (d5558b68, closes #446)
    • dropping a Response will write out to the underlying stream (a9dcc59c)

Breaking Changes

  • Adds a variant to hyper::Error, which may break any exhaustive matches.

(972b3a38)

  • The terms 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)

  • Add variant to Access-Control-Allow-Origin enum

(5e341714)

  • Upgrade header Protocol changed.

(f47d11b9)

  • from_one_raw_str() returns None on empty values.

(a6974c99)

v0.3.16 (2015-05-01)

Bug Fixes

  • header:
    • make test_module of header! optional (a5ce9c59, closes #490)
    • exporting test_header! macro (2bc5a779)
  • http: keep raw reason phrase in RawStatus (8cdb9d5d, closes #497)

Features

v0.3.15 (2015-04-29)

Bug Fixes

  • headers:
    • Do not parse empty values in list headers. (093a29ba)
    • Fix formatting of 0 qualites and formatting of empty list header fields. (621ef521)

Features

  • client:
    • remove Clone requirement for NetworkStream in Client (60d92c29)
    • accept &String as Body in RequestBuilder (a2aefd9a)
    • accept &String for a Url in RequestBuilder (8bc179fb)
  • headers: Implement Content-Language header field (308880b4, closes #475)
  • net: add https_using_context for user-supplied SslContext (1a076d1b)
  • server: allow consumer to supply an SslContext (3a1a2427, closes #471)

Breaking Changes

  • This removes the trait 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)

v0.3.14 (2015-04-18)

Bug Fixes

  • http: Adjust httparse Request and Response lifetimes. (76550fdb)

v0.3.13 (2015-04-17)

Bug Fixes

  • server: JoinHandle type parameter (c694b138)

Features

  • debug: add Debug impls for StatusClass, Server, and Listening (0fb92ee7)

v0.3.12 (2015-04-15)

Bug Fixes

  • server:
    • handle keep-alive closing (d9187713, closes #437)
    • join on thread when Listening drops (68d4d63c, closes #447)
    • Use thread::spawn instead of thread::scoped. (e8649567)

Features

  • http: Implement Debug for HttpReader/Writer. (2f606c88)
  • log: clean up logging (4f09b002)
  • net: make HttpStream implement Debug (7b7f9c25)

v0.3.11 (2015-04-15)

Bug Fixes

  • headers: Content-Encoding needs a hyphen. (ca2815ef)

Features

  • client: remove generic parameter for Connector (139a51f1, closes #379)

Breaking Changes

  • 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)

v0.3.10 (2015-04-06)

Bug Fixes

  • README: Update to compile example against Rust beta (341f19d3)

v0.3.9 (2015-04-03)

Bug Fixes

  • headers: Add CowStr as a temporary hack to build on beta. (8e065563)

v0.3.8 (2015-04-02)

Bug Fixes

  • rustup: update to rust beta (0f5858f3)

Breaking Changes

  • Removed impl_header!() and impl_list_header!() macros, use new header!() macro.

(262c450f)

v0.3.7 (2015-03-31)

Bug Fixes

  • buffer: zero out new capacity when buffer grows (cfdabd70)

Features

  • entitytag: Add EntityTag comparison, make EntityTag safe to use (9c21f7f9)

v0.3.6 (2015-03-30)

Bug Fixes

  • buffer: get_buf to not return consumed part of buffer (04e3b565, closes #406)
  • rustup: get rid of slice pattern, add Reflect bounds (c9f2c841)

v0.3.5 (2015-03-28)

Bug Fixes

  • http: read more before triggering TooLargeError (cb59f609, closes #389)

v0.3.4 (2015-03-26)

Bug Fixes

  • rustup: static bounds required on Type definition, trivial_casts (eee7a85d)

v0.3.3 (2015-03-25)

Bug Fixes

  • rustup:
    • rustc 1.0.0-nightly (123a754cb 2015-03-24) (3e456f00)
    • 1.0.0-nightly (e2fa53e59 2015-03-20) (f547080d)

Features

  • headers: Implementing content-encoding header (2983e8de, closes #391)

v0.3.2 (2015-03-20)

Bug Fixes

  • benches: removed unused features (104d4903)
  • rustup:

Features

  • server: use SocketAddrs instead of Ipv4Addrs (5d7be77e)

v0.3.1 (2015-03-18)

Bug Fixes

  • header: Fix charset parsing bug. (5a6e176f)
  • headers: Fix overflow with empty cookies (99baaa10)
  • rustup: update to latest rustc (4fd8a6a9)

Features

  • server: add Expect 100-continue support (0b716943, closes #369)

Breaking Changes

  • Several public functions and types in the http module have been removed. They have been replaced with 2 methods that handle all of the http1 parsing.

(b87bb20f)

v0.3.0 (2015-03-03)

Features

  • headers:
    • add enum for Charset (180d9a92)
    • add AcceptCharset header (235089a1)
    • add q function to ease creating Quality values (d68773c7)
    • adds re-parsing ability when getting typed headers (df756871)
  • hyper: switch to std::io, std::net, and std::path. (0fd6fcd7, closes #347)

Breaking Changes

  • added requirement that all HeaderFormat implementations must also be fmt::Debug. This likely as easy as slapping #[derive(Debug)] on to any custom headers.

(df756871)

  • Check the docs. Everything was touched.

(0fd6fcd7)

v0.2.1 (2015-02-27)

Bug Fixes

  • rustup: str.split and associated type changes (1b6e6a04)

Features

  • headers: add remove_raw method and corresponding test (4f576780, closes #326)

v0.2.0 (2015-02-21)

Bug Fixes

  • headers: use $crate when referring to hyper modules on macros (e246c3ac, closes #323)
  • rustup:

Features

  • server: make AcceptorPool::accept() block and allow non'-static data (b0a72d80)

v0.1.13 (2015-02-17)

Bug Fixes

Features

  • header: Support arbitrary status codes (73978531)
  • headers:
  • server: Rewrite the accept loop into a custom thread pool. (3528fb9b)

Breaking Changes

  • This removes unregistered status codes from the enum. Use 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)

v0.1.12 (2015-02-13)

Bug Fixes

  • net: don't stop the server when an SSL handshake fails with EOF (55f12660)

Features

  • headers: Add If-None-Match header field (318b067a, closes #238)

v0.1.11 (2015-02-06)

Bug Fixes

  • readme: Make the README client example work (9b5d6aab)

Features

  • headers: add IfUnmodifiedSince header (b5543b67)

Breaking Changes

  • for any consumers of the Etag header, since the entity tag is now in a tuple.

(28fd5c81)

v0.1.10 (2015-02-03)

Bug Fixes

  • headers: add limit to maximum header size that should be parsed (f18a8fb7, closes #256)
  • rustup:
    • update FromStr (742081c8)
    • fix unused_feature warning in example server (05a3a6b7)
    • switch to unstable features (3af8b687)

v0.1.9 (2015-01-28)

Bug Fixes

  • headers: Don't display q if q=1 in quality item. (91df2441, closes #281)
  • rustup: update io import, Writer::write (f606b603)

Features

  • status: add is_<status_class>() methods to StatusCodes (2d55a22e)

v0.1.8 (2015-01-27)

Bug Fixes

  • headers:
    • make ConnectionHeader unicase (e06e7d9a)
    • make Protocol search websocket unicase (65c70180)
  • log: update to new logging levels (b002b6c3)

Features

Breaking Changes

  • Change header Cookie to Cookie

(92f43cf8)

v0.1.7 (2015-01-27)

Bug Fixes

  • rustup: update to newest fmt trait names and slice syntax (9e3c94d7)

Breaking Changes

  • Implementations of Header will need to adjust the header_name method. It no longer takes any arguments.

(8215889e)

v0.1.6 (2015-01-27)

Bug Fixes

  • headers: make Schemes, Basic, Protocol public (e43c35c1)

v0.1.5 (2015-01-27)

v0.1.4 (2015-01-27)

Bug Fixes

  • imports: Update TypeID import location to "any" (dd2534a6)

v0.1.3 (2015-01-27)

Features

  • server: add a deconstruct method to Request. (1014855f)

v0.1.2 (2015-01-27)

Bug Fixes

  • server: Increase MAX_HEADER_FIELD_LENGTH to 4k (54238b28)

Features

  • net:
    • Move SSL verification to unboxed closures (bca9a53c)
    • Allow more generic SSL verification () (af577851, closes #244)

0.1.1 (2015-01-13)

Features

  • server:: Add TLS/SSL support serverside (c6eef681, closes #1)

Bug Fixes

  • headers:
    • fix fmt_header outputs of several headers (aa266653, closes #246)
    • don't use Show to write UserAgent header (c8e334aa)