Ferron change log
Ferron 1.1.1
Released in April 29, 2025
- Fixed an infinite loop when fetching the request body from the HTTP/3 client
- Fixed duplicate alternative services in “Alt-Svc” header when using the “cache” module
Ferron 1.1.0
Released in April 29, 2025
- Added experimental support for HTTP/3
- Added support for HTTP-01 ACME challenge for automatic TLS
- Added support for WSGI and ASGI (not enabled by default, you must compile Ferron yourself to use these features)
Ferron 1.0.0
Released in April 12, 2025
- First stable release
Ferron 1.0.0-beta11
Released in April 5, 2025
- ETags now are wrapped in double quotes and vary based on the used compression algorithm
- Fixed bug with handling the “s-maxage” directive in “Cache-Control” header value
- The server now adds “Vary” header to the static content responses
- The server now doesn’t add “Status” CGI/SCGI/FastCGI header as a HTTP response header
Ferron 1.0.0-beta10
Released in March 30, 2025
- Fixed bug with “userList” and “users” property validation for non-standard codes
- The server now enables OCSP stapling by default
Ferron 1.0.0-beta9
Released in March 29, 2025
- The server now uses the directory containing the executed CGI program as a working directory for the CGI program (this fixed YaBB setup not starting at all)
Ferron 1.0.0-beta8
Released in March 28, 2025
- Added support for
{path}
placeholders for custom header values - The server now uses the request URL before rewriting in CGI, SCGI, and FastCGI “REQUEST_URI” environment variables (this fixed the redirect loop when URL rewriting is used with Joomla)
- The server now uses the request URL before rewriting in directory listings
Ferron 1.0.0-beta7
Released in March 27, 2025
- Dropped support for dynamically-loaded server modules (Ferron now only supports compiled-in optional modules that can be disabled via Cargo features)
- HTTP/2 is now enabled by default for encrypted connections
- Refactored HTTP connection acception logic
Ferron 1.0.0-beta6
Released in March 23, 2025
- Added option for limiting the cache size by a specific number of entries
- Limited the Zstandard window size to 128KB for better HTTP client support
- Optimized Brotli compression for static files
Ferron 1.0.0-beta5
Released in March 16, 2025
- Fixed a bug related to HTTP cookies and HTTP/2
Ferron 1.0.0-beta4
Released in March 16, 2025
- Added an option to disable backend server certificate verification for the reverse proxy
- Added support for CGI/SCGI/FastCGI “HTTPS” environment variable
- Added support for configuration reloading without entirely restarting the server via a “SIGHUP” signal
- Fixed virtual host resolution not working for HTTP/2 connections
Ferron 1.0.0-beta3
Released in March 14, 2025
- Added support for configuration file includes
- Added support for passive health checks for load balancer
- Added support for request processing timeouts to prevent slow HTTP attacks
- Added support for WebSocket request handlers
- Added support for WebSocket reverse proxying
Ferron 1.0.0-beta2
Released in March 8, 2025
- Added a forwarded authentication module (fauth)
- Added support for per-location configuration
- Added support for X-Forwarded-Proto and X-Forwarded-Host headers for rproxy module
- Fixed bug with FastCGI connections not being closed when only partial request body is sent
- Improved server performance when no CGI program is executed
Ferron 1.0.0-beta1
Released in March 2, 2025
- Fixed directory listings and some server error pages displaying HTML as plain text
- Fixed handling of per-host URL rewriting and non-standard code configuration
- Fixed
wwwroot
configuration property resulting in a redirect loop - Rebranded the web server from “Project Karpacz” to “Ferron”
- The directory listings no longer show a return link for the website root directory
- The entries in the directory listings are now sorted alphabetically
Project Karpacz 0.7.0
Released in February 26, 2025
- Added automatic TLS through TLS-ALPN-01 ACME challenge
- Changed the cryptography provider for Rustls from AWS-LC to ring
- Fixed HTTPS server using address-port combinations intended for non-encrypted HTTP server
- Fixed Unix socket URL parsing failures for scgi and fcgi modules
Project Karpacz 0.6.0
Released in February 24, 2025
- Added a FastCGI module (fcgi)
- Added a SCGI module (scgi)
- Added support for
Must-Staple
marked TLS certificates - The CGI handler now trims CGI error messages
- The CGI handler now sanitizes double slashes for checking if the request path is in the “cgi-bin” directory
Project Karpacz 0.5.0
Released in February 22, 2025
- Added a CGI module (cgi)
- Decreased the cache TTL for static file serving and trailing slash redirects from 1s to 100ms
- Rewritten HTTP status code descriptions
- The request handler now uses a
Request<BoxBody<Bytes, hyper::Error>>
object instead ofRequest<Incoming>
object.
Project Karpacz 0.4.0
Released in February 20, 2025
- Added a caching module (cache)
- Added concurrency for the keep-alive connection pool in the rproxy module.
- Added support for randomly-distributed load balancing in the rproxy module.
- The web server no longer applies host configuration for forward proxy requests.
- The web server now adds custom headers before executing response modifying handlers.
Project Karpacz 0.3.0
Released in February 18, 2025
- Added a forward proxy module (fproxy)
- Added CONNECT forward proxy request handler support
- Added HTTP keep-alive support for reverse proxy module
- Added support for HTTP upgrades
- Added support for optional built-in modules
- Fixed server hang-ups with reverse proxy with high concurrency
- Modified
parallel_fn
function to accept async closures without needing to useBox::pin
in the module itself - The error logger struct is now clonable
- The reverse proxy module (rproxy) is now an optional reverse proxy module
Project Karpacz 0.2.0
Released in February 16, 2025
- Added a reverse proxy module (rproxy)
- Added
builder_without_request
method for ResponseData builder - Added
ServerConfigurationRoot
parameter for configuration validation functions - Fixed
BadValues
error when querying configuration by modules - Implemented parallel function execution (by spawning a Tokio task) in ResponseData
- Improved server configuration processing performance
- The web server now uses
async-channel
crate instead of Tokio’s MPSC channel - The web server now uses
local_dynamic_tls
feature ofmimalloc
crate to fix module loading issues
Project Karpacz 0.1.0
Released in February 13, 2025
- First alpha release