# 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