tiny_http 0.12.0

Low level HTTP server library
Documentation
# Changes

## 0.12.0
* Bumped the minimum compiler version tested by CI to 1.56 - this is necessary due to an increasing number of dependencies
  introducing Cargo manifest features only supported on newer versions of Rust.

* [Add support for UNIX sockets]https://github.com/tiny-http/tiny-http/pull/224

  Thanks to @ColonelThirtyTwo for adding support for binding to UNIX sockets when creating a tiny-http server. This change
  makes a few small breaking API modifications, if you are constructing `ServerConfig` manually you will need to use the new `ListenAddr`
  type rather than directly supplying a `net::SocketAddr`. Likewise `Server::server_addr()` will now return an enum that can
  represent either a TCP socket or a UNIX socket.

  Finally `Request::remote_addr()` now returns an `Option<&SocketAddr>` as UNIX sockets don't ever have a remote host.

* [Reduce required dependencies by switching to `httpdate`]https://github.com/tiny-http/tiny-http/pull/228

  @esheppa replaced our internal HTTPDate type with the `httpdate` library (used extensively in the community by Hyper, Tokio and others)
  which reduces our baseline dependency tree from 18 crates to 5!

* `TestRequest::path` no longer has a `'static` bound, allowing for fuzzers to generate test request paths at runtime.

* Unpinned `zeroize` so it can float around any stable `^1` version.

## 0.11.0

* [Add support for Rustls]https://github.com/tiny-http/tiny-http/pull/218

  Thanks to @3xmblzj5 and @travispaul for their help in implementing [`Rustls`]https://github.com/rustls/rustls as a
  drop-in replacement for OpenSSL, you can now build `tiny-http` with TLS support without any external dependencies!
  OpenSSL will remain the default implementation if you just enable the `ssl` feature, but you are strongly encouraged
  to use `ssl-rustls` where possible!

* [Fix incorrect certificate chain loading]https://github.com/tiny-http/tiny-http/commit/876efd6b752e991c699d27d3d0ad9a47e9d35c29

  Fix a longstanding bug where we were only loading the first (i.e. the leaf) certificate from any PEM file supplied by
  the user.


## 0.10.0

* [Replace chrono with time-rs]https://github.com/tiny-http/tiny-http/commit/75ac7758fd0ca660c35f58c2a36edb23a42cda32

  `chrono` was only used to store and format `DateTime` into the slightly odd format required by RFC 7231, so to
  avoid the numerous RUSTSEC advisories generated by the `localtime_r` issue, we can just drop it entirely and switch
  to `time-rs`.
  Unfortunately this means we need to **bump our minimum tested compiler version to 1.51**, and as such this change
  requires a full minor release.

## 0.9.0

* [Rust 2018 Refactor]https://github.com/tiny-http/tiny-http/pull/208
* [Enable prompt responses, before the request has been fully read]https://github.com/tiny-http/tiny-http/pull/207

  This isn't an API change, but does result in different behaviour to 0.8.2 and so justifies a minor version bump.

  HTTP requests now return a boxed `FusedReader` which drops the underlying
  reader once it reaches EOF, such that the reader no longer needs to be
  explicitly consumed and the server may now respond with e.g. a "413 Payload
  too large" without waiting for the whole reader.

* Bumped the minimum compiler version tested by CI to 1.48 (the version supported in Debian Bullseye)

## 0.8.2

* [Add TestRequest for writing server tests more easily]https://github.com/tiny-http/tiny-http/pull/203

## 0.8.1

* [Don't set Transfer-Encoding for 1xx or 204 Responses]https://github.com/tiny-http/tiny-http/pull/198

## 0.8.0

* [Fix RUSTSEC-2020-0031]https://github.com/tiny-http/tiny-http/pull/190
* [Filter out the same socket-closing errors on flush as on write]https://github.com/tiny-http/tiny-http/pull/192
* [response: Drop the use of EqualReader for TransferEncoding::Identity]https://github.com/tiny-http/tiny-http/pull/183
* [Add unblock method for graceful shutdown]https://github.com/tiny-http/tiny-http/pull/184
* [Response: Don't forget `chunked_threshold`]https://github.com/tiny-http/tiny-http/pull/177
* [Response: Allow manual handling of Range requests]https://github.com/tiny-http/tiny-http/pull/175
* [Feature | Getters for Response Status Code & Data Length Properties]https://github.com/tiny-http/tiny-http/pull/186

## 0.7.0

* [Fix HTTPS deadlock]https://github.com/tiny-http/tiny-http/pull/151
* [Relicense to MIT/Apache-2.0]https://github.com/tiny-http/tiny-http/pull/163
* [Update `ascii` dependency]https://github.com/tiny-http/tiny-http/pull/165
* [Fix typo in README]https://github.com/tiny-http/tiny-http/pull/171
* [Fix compilation errors in benchmark]https://github.com/tiny-http/tiny-http/pull/170
* [Update `url` dependency]https://github.com/tiny-http/tiny-http/pull/168
* [Update `chunked_transfer` dependency]https://github.com/tiny-http/tiny-http/pull/166

## 0.6.2

* [Remove AsciiExt usage]https://github.com/tiny-http/tiny-http/pull/152
* [Remove unused EncodingDecoder]https://github.com/tiny-http/tiny-http/pull/153

## 0.6.1

* [Fix documentation typo]https://github.com/tiny-http/tiny-http/pull/148
* [Expose chunked_threshold on Response]https://github.com/tiny-http/tiny-http/pull/150

## 0.6.0

* [Bump dependencies]https://github.com/tiny-http/tiny-http/pull/142
* [Fix `next_header_source` alignment]https://github.com/tiny-http/tiny-http/pull/140

## 0.5.9

* Expanded and changed status code description mapping according to IANA registry:
 * https://github.com/tiny-http/tiny-http/pull/138

## 0.5.8

* Update links to reflect repository ownership change: https://github.com/frewsxcv/tiny-http -> https://github.com/tiny-http/tiny-http

## 0.5.7

* Fix using Transfer-Encoding: identity with no content length
 * https://github.com/tiny-http/tiny-http/pull/126

## 0.5.6

* Update link to documentation
 * https://github.com/tiny-http/tiny-http/pull/123
* Fix websockets
 * https://github.com/tiny-http/tiny-http/pull/124
* Drop the request reader earlier
 * https://github.com/tiny-http/tiny-http/pull/125

## 0.5.5

* Start using the log crate
 * https://github.com/tiny-http/tiny-http/pull/121
* Unblock the accept thread on shutdown
 * https://github.com/tiny-http/tiny-http/pull/120

## 0.5.4

* Fix compilation warnings
 * https://github.com/tiny-http/tiny-http/pull/118

## 0.5.3

* Add try_recv_timeout function to the server
 * https://github.com/tiny-http/tiny-http/pull/116

## 0.5.2

* Update ascii to version 0.7
 * https://github.com/tiny-http/tiny-http/pull/114

## 0.5.1

* Request::respond now returns an IoResult
 * https://github.com/tiny-http/tiny-http/pull/110

## 0.5.0

* HTTPS support
 * https://github.com/tiny-http/tiny-http/pull/107
* Rework the server creation API
 * https://github.com/tiny-http/tiny-http/pull/106

## 0.4.1

* Allow binding to a nic by specifying the socket address
 * https://github.com/tiny-http/tiny-http/pull/103

## 0.4.0

* Make Method into an enum instead of a character string
 * https://github.com/tiny-http/tiny-http/pull/102