v2.30.0
This new v2.30.0
release brings security and dependency updates as well as several bug fixes. Overall performance improvements (directory listing particularly), continuous HTTP load testing benchmarks, project refactorings for increased stability, security and correctness as well as several other improvements.
This particular release addresses an security issue for the directory listing feature.
We encourage users using the directory listing to update as soon as possible.
Fixes
- 6683446 Bugfix/security dependency updates including rustls, tokio, async-compression, regex, chrono, clap and other crates (also 8cfc7ed, a876cd5, 69bfdd4).
- c04357e Missing custom headers for directory requests (trailing slash). PR #333.
- 1c4fad2 CORS does not work properly when used with Basic Auth. PR #343 by @ms140569.
- 528ed08
Accept-Encoding
handling does not work correctly if only two compression schemes are available. PR #361 by @palant. - c8e39aa Errors due to "unused code" when features are disabled. PR #368 by @palant.
- 5d66301 Unreserved characters are percent-encoded in directory listing links. PR #371.
- 114862a Malformed UTF-8 file names are not handled correctly. PR #374 by @palant.
Features
- 012ef11 Crate: Display platforms-specific documentation on docs.rs.
- a197f20 CI: Load testing benchmarks comparison for each commit via GitHub Actions. PR #355 by @palant. See benchmarks on CI.
Refactorings
- a451a93 Improve performance when serving static files. PR #334.
- e569a71 Reduce some allocations in several modules. PR #337.
- 183102d Build error when using specific or no Cargo compression features. PR #339.
- fe6a2a1 Move health endpoint-related code into a separate file. PR #344 by @palant.
- cc6784a Move metrics endpoint-related code into a separate file. PR #345 by @palant.
- 76531e6 Move all of Basic authentication logic into
basic_auth
module. PR #346 by @palant. - d44e5a1 Move all redirect handling logic into the redirects module. PR #348 by @palant.
- e965933 Move most of the CORS-related code into the cors module. PR #349 by @palant.
- 1246e37 Move most of maintenance mode logic into
maintenance_mode
module. PR #350 by @palant. - 941f692 Move various code related to header handling to the respective modules. PR #351 by @palant.
- a13f496 Replaced fork of the headers module by an in-tree handler for the
Accept-Encoding
header. PR #354 by @palant. - 207fa4a Move all rewrite handling logic into the rewrites module. PR #353 by @palant.
- c3c55a4 Prefer querying available cpus using Rust std. PR #358.
- ddda871 Apply the usual post-processing to error responses for consistency. PR #359 by @palant.
- cfd1390 Improve performance of directory listings. PR #357 by @palant.
- 5a4035f Improve recognition of text MIME types for compression. PR #360 by @palant.
- b66c89e Move all compression-related code into
compression
andcompression_static
modules. PR #369 by @palant. - 5b5ea98 Use
maud
templates andserde_json
for directory listings. PR #367 by @palant. - f311e94 Move all
fallback
page logic into the corresponding module. PR #372 by @palant. - 7d61c91 Move directory listing initialization into the corresponding module. PR #373 by @palant.
Docs
- 90b6032 Add Exherbo Linux install guide. PR #331 by @davlgd. See docs.
- f534f00 Fix typo in GitHub bug report template. PR #341 by @palant.
For more details see v2.30.0 milestone and the full changelog v2.28.0...v2.30.0.