Skip to content

Releases: static-web-server/static-web-server

v2.31.1

20 May 23:16
v2.31.1
2df991f
Compare
Choose a tag to compare

This new v2.31.1 release fixes an issue when running the SWS Linux ARM64 Musl binary on systems with greater memory page sizes than 4KB and re-enables build support for the legacy Windows 7 dropped by the previous release.

Fixes

  • c5f851f Bugfix/security dependency updates.
  • adaddde Jemalloc unsupported system page size in Linux ARM64 Musl. PR #446.
  • 1763623 Lib: Cargo publish issue due to missing build.rs file include.

Refactorings

  • 5f116d7 Re-enable Windows 7, 8, 8.1 build support. PR #447.
    The following Windows targets will build now using Rust 1.77.2 rather than the latest stable version, except aarch64-pc-windows-msvc (a.k.a. Windows ARM64):
    • x86_64-pc-windows-msvc
    • i686-pc-windows-msvc
    • x86_64-pc-windows-gnu

v2.31.0

19 May 20:46
v2.31.0
30e8ed2
Compare
Choose a tag to compare

This new v2.31.0 release brings several bug fixes, features like a new compression level option, logs for virtual hosts, better-accepted encodings handling for pre-compressed files and other improvements.

Fixes

  • d22e2dd Bugfix/security dependency updates including bytes, serde, toml, async-compression, flate2, brotli and other crates (also ea96328).
  • 1aae13c Directory Listing: Empty file sizes are displayed incorrectly. PR #385 by @palant.
  • 25c171b Directory Listing: File sizes are wrongly displayed in decimal format. PR #376 by @miroim.
  • e7bfaa2 Lib: Compile errors if only deflate compression is enabled. PR #383 by @palant.
  • 195f706 Docker: Unsupported system page size when using Linux ARM64 musl (E.g. Raspberry Pi 5). PR #443.
  • d4046d9 Unexpected cfg condition-name wasm in Rust nightly. PR #441.
  • 1b13a74 Misc: Clippy warnings caused by test code. PR #382 by @palant.
  • 936b224 CI: Prevent running the FreeBSD devel pipeline unnecessarily.

Features

Refactorings

  • 85e3da7 Lib: Make request body type generic across modules. PR #375 by @palant.
  • 18f550a Directory Listing: Drop custom type conversion between SystemTime and DateTime. PR #384 by @palant.
  • 219ec6c Move Remote and Real IP addresses logging to a new module. PR #388.
  • cfd8bb1 Re-organize file system-related modules. PR #424.
  • 7cf72e6 Misc: Several project config and doc file improvements.

For more details see the v2.31.0 milestone and the full changelog v2.30.0...v2.31.0.

v2.30.0

28 Apr 22:57
v2.30.0
e24b2ec
Compare
Choose a tag to compare

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

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 and compression_static modules. PR #369 by @palant.
  • 5b5ea98 Use maud templates and serde_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

For more details see v2.30.0 milestone and the full changelog v2.28.0...v2.30.0.

v2.28.0

08 Mar 23:46
v2.28.0
9496932
Compare
Choose a tag to compare

This new v2.28.0 release brings security dependency updates and bug fixes. Cancellation ability to shut down the server gracefully on demand when using the library, Docker examples and Windows Firewall instructions as well as other improvements.

Fixes

  • 769daf1 Bugfix/security dependency updates including mio, ring, http, rustls-pemfile, regex, chrono, clap and other crates (also a97cc77).
  • e031a7d Docker: Debian 12.5 image update.
  • b6444f4 Crate: TryFrom imported redundantly in Rust nightly. PR #318 by @yonas.

Features

  • afd6a87 Crate: Cancellation ability for server::Server::run_server_on_rt and server::Server::run_standalone functions in Linux/BSDs. PR #319 resolves #315 suggested by @hanaTsuk1.

Refactorings

  • a68349c Crate: Add targets to Crate docs.rs metadata.
  • afa8575 Misc: Refactor the static files module and delegate functionality to separated files. PR #329.

Docs

  • 9fb2111 Windows Firewall rule instructions for the Windows service feature. See docs.
  • 668ecfe Docker, Kubernetes, Treafik and related examples. It resolves #323 suggested by @hanscees. See docs.

v2.27.0

12 Feb 23:17
v2.27.0
cb573a5
Compare
Choose a tag to compare

This new v2.27.0 release brings a few dependency updates and bug fixes. Two new Cargo feature flags and fixes a regression introduced by the previous release when building SWS from source.

Fixes

  • ec93d6c Bugfix/security dependency updates including chrono, indexmap, thiserror and other crates.

Features

v2.26.0

10 Feb 22:58
v2.26.0
6781ec3
Compare
Choose a tag to compare

This new v2.26.0 release brings several dependency security updates and bug fixes. Support for Range requests out of bounds, experimental Tokio Runtime metrics for Prometheus, new Discord server as well as other improvements.

Fixes

  • 80af0aa Bugfix/security dependency updates including tokio, regex, chrono, libc, toml, serde and other crates. Also 1d4f423
  • 5623799 Docker: Alpine 3.18.6 update.
  • a7dc6ac Docker: linux/s590x and linux/ppc64le images are missing dependencies. PR #309 resolves #308 reported by @glehmann.
    • It is solved by dropping support for the linux/ppc64le and linux/s390x of the Alpine Scratch images because those binaries provided are not static-linked. Prefer the Debian image variant for those targets instead.

Features

Refactorings

  • 563367c Minimum Rust stable version 1.74.0.
  • 370d288 Misc: Base fuzz and micro-benchmark testing for static files module. PR #310.

Acknowledgments

Thanks to our new donor @c0m4r for supporting the project.

v2.25.0

23 Jan 00:03
v2.25.0
b470d84
Compare
Choose a tag to compare

This new v2.25.0 release brings several dependency security updates and bug fixes. An optional Host URI support for the URL Redirects feature, a bug fix when capturing a Glob pattern using brace expansion for URL Rewrites/Redirects as well as other improvements.

Fixes

  • 477ed00 Bugfix/security dependency updates including rustls, h2, regex, chrono, libc, async-compression, serde and other crates (also 32e86aa).
  • 42f52e8 Wrong Glob brace expansion capture in URL Rewrites/Redirects. PR #304.
  • 9f2a4f0 Docker: Alpine 3.18.5 update.

Features

  • 8c6ab53 Optional Host URI support for the URL Redirects feature. PR #301.
    This will allow users for example to perform www to non-www redirects or vice versa. See docs.

Refactorings

  • 83e4277 Migrate TLS module to use tokio-rustls 0.25. PR #303.
  • 1bbc703 CI: Cache Rust toolchain and Cargo directories for CI devel workflow. PR #300.
  • 67a2403 CI: Prefer cross precompiled binary on CI devel workflow.
  • ef9876a CI: Prefer cross precompiled binary on CI release workflow.

Docs

  • 3076d08 Optional Host uri support for URL Redirects feature. See docs.
  • dedefc5 Fix a few page typos.

Acknowledgments

Thanks to our new donors for supporting the project.

v2.24.2

28 Dec 17:38
v2.24.2
f99e866
Compare
Choose a tag to compare

This new v2.24.2 release brings general dependency security updates, bug fixes and improvements.

Fixes

  • 5554522 Bugfix/security dependency updates including hyper, tokio, rustls/ring, h2, tracing, regex, toml, futures, serde and other crates.
  • 8cdb305 Docker: Debian 12.4 update.
  • af203ca Docker: Alpine 3.17.6 update.

Refactorings

  • 96ec477 Consistency when importing several types.
  • ab67bd7 Misc: GitHub issue and pull request template improvements. PR #294. Also a9d509e.

v2.24.1

14 Nov 23:15
v2.24.1
98a5cc4
Compare
Choose a tag to compare

This new v2.24.1 release brings dependency security updates and bug fixes. In particular, it fixes an issue when executing the previous Windows ARM64 build as well as other minor improvements.

Fixes

  • c0c88f1 Bugfix/security dependency updates including tokio, http, rustls-pemfile, tracing, clap and other crates.
  • f4e9142 Windows ARM64 binary does not execute due to missing DLLs. PR #290.

Refactorings

  • 990bb7c Statically link the C runtime for Windows MSVC x86 (32-bit) build. PR #291.

Docs

Misc

  • 3099dba CI: Manual Docker build CI workflow for testing. PR #286.
  • 680323c CI: Manual release build CI workflow for testing. PR #288.

v2.24.0

09 Nov 00:49
v2.24.0
40ddf40
Compare
Choose a tag to compare

This new v2.24.0 release brings dependency security updates and bug fixes. It introduces three new targets (PowerPC (PPC64LE), S390x and Windows ARM64). Features like automatic TOML configuration file detection at startup and 404/50x error pages loading at runtime as well as several improvements.

Fixes

  • e767938 Bugfix/security dependency updates including ring, rustls, regex, clap, serde, futures, brotli and other crates (also b0c0775).
  • 4fa09ab CI: cross does not build when using libc 0.2.149+ on NetBSD.

Features

Refactorings

  • 4de9acd Allowed methods response for OPTIONS file requests. PR #278.
  • d06ad0f Remove some unused TLS configuration APIs and use defaults directly. PR #279.
  • ab16187 Improve the server maintenance mode debug logs. PR #282.

Docs

  • 2798725 Linux PowerPC (PPC64LE) and S390x targets information. See docs.