-
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.
-
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 newListenAddr
type rather than directly supplying anet::SocketAddr
. LikewiseServer::server_addr()
will now return an enum that can represent either a TCP socket or a UNIX socket.Finally
Request::remote_addr()
now returns anOption<&SocketAddr>
as UNIX sockets don't ever have a remote host. -
Reduce required dependencies by switching to
httpdate
@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.
-
Thanks to @3xmblzj5 and @travispaul for their help in implementing
Rustls
as a drop-in replacement for OpenSSL, you can now buildtiny-http
with TLS support without any external dependencies! OpenSSL will remain the default implementation if you just enable thessl
feature, but you are strongly encouraged to usessl-rustls
where possible! -
Fix incorrect certificate chain loading
Fix a longstanding bug where we were only loading the first (i.e. the leaf) certificate from any PEM file supplied by the user.
-
chrono
was only used to store and formatDateTime
into the slightly odd format required by RFC 7231, so to avoid the numerous RUSTSEC advisories generated by thelocaltime_r
issue, we can just drop it entirely and switch totime-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.
-
Enable prompt responses, before the request has been fully read
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)
- Fix RUSTSEC-2020-0031
- Filter out the same socket-closing errors on flush as on write
- response: Drop the use of EqualReader for TransferEncoding::Identity
- Add unblock method for graceful shutdown
- Response: Don't forget
chunked_threshold
- Response: Allow manual handling of Range requests
- Feature | Getters for Response Status Code & Data Length Properties
- Fix HTTPS deadlock
- Relicense to MIT/Apache-2.0
- Update
ascii
dependency - Fix typo in README
- Fix compilation errors in benchmark
- Update
url
dependency - Update
chunked_transfer
dependency
- Expanded and changed status code description mapping according to IANA registry:
- #138
- Update links to reflect repository ownership change: https://github.com/frewsxcv/tiny-http -> https://github.com/tiny-http/tiny-http
- Fix using Transfer-Encoding: identity with no content length
- #126
- Fix compilation warnings
- #118
- Add try_recv_timeout function to the server
- #116
- Update ascii to version 0.7
- #114
- Request::respond now returns an IoResult
- #110
- Allow binding to a nic by specifying the socket address
- #103
- Make Method into an enum instead of a character string
- #102