Ferron 3.0.0-rc.4 released

Published on: Author: Dorian Niemiec

Today, we’re releasing Ferron 3.0.0-rc.4, the fourth release candidate version of what it would be Ferron 3.

This release involves overall stabilization of Ferron 3 as a whole, but also distributed rate limiting with Redis/Valkey.

Distributed rate limiting

As a Rustacean engineer, I couldn’t resist that “just one more feature”… 😅

View Tweet

So I ended up adding distributed rate limiting to Ferron 3. It uses Redis or Valkey as the backend for storing rate limit data. This allows rate limiting to be distributed across multiple Ferron instances. You can configure it like this:

example.com {
    rate_limit_backend {
        type redis
        url "redis://127.0.0.1:6379/0"
    }

    rate_limit {
        rate 100
        burst 50
    }
}

Some other bug fixes

  • HTTP/1.x multiple request parsing fix: fixed HTTP/1.x requests being rejected with 400 Bad Request after multiple requests in one connection. (see zincio-http changelog)
  • HTTPS redirect fix: https_redirect directive is now effective for block levels above host block (like location or conditional blocks) if specified in the host block.
  • CGI and FastCGI PATH_INFO fix: previously, PATH_INFO was not set correctly in CGI requests (stray leading slash, if PATH_INFO is about to be set). Now, PATH_INFO is set correctly in both CGI and FastCGI (often PHP-FPM) requests.

Ferron 3 stable coming soon

Ferron 3 is approaching even closer to a stable, production-ready web server. This release candidate focuses on improving the overall stability and user experience of Ferron 3.

As always, I welcome feedback, bug reports, and testing results.

Full changelog

You can see the complete changelog for Ferron 3.0.0-rc.4 in the release notes.

Try it

Install Ferron 3 using the installer:

sudo bash -c "$(curl -fsSL https://get.ferron.sh/v3)"