In the competitive landscape of web server technology, a new contender has emerged. Ferron, a web server written in Rust, is generating buzz in developer circles for its memory-safety features and performance claims. As web infrastructure demands continue to evolve, the community has been evaluating how this newcomer stacks up against established solutions like Caddy and Nginx.
Memory Efficiency Stands Out in Early Testing
Early benchmarks shared by the project's creator suggest impressive memory efficiency compared to some competitors. In tests where both HTTPS and HTTP/2 were enabled while serving the default Apache httpd page, Ferron reportedly outperformed Caddy 2.9.1 in memory usage. According to the developer, Caddy used so much memory that at 12,600 requests per second the system with 16 GB RAM ran out of memory, while Ferron didn't use that much memory, and benchmark succeeded up to 20,000 requests per second. This efficiency could make Ferron particularly attractive for resource-constrained environments, though some community members suggest the memory issue might be related to Go's garbage collection rather than Caddy's design.
Security Features Built on Rust's Foundation
Ferron leverages Rust's memory safety guarantees as a core selling point. The web server includes built-in security features like protection against Slowloris attacks through configurable request header timeouts. When asked specifically about this vulnerability, the developer explained that Hyper (HTTP library used by Ferron) has request header timeout of 30s by default if a timer is set. Ferron sets the timer for Hyper for request header timeout to work, thus mitigating Slowloris. This attention to security fundamentals reflects the growing emphasis on building infrastructure with security-first principles.
Ferron Key Features
- Written in Rust with focus on memory safety
- High performance using Rust's async capabilities
- HTTP/2 and OCSP stapling enabled by default with HTTPS
- Protection against Slowloris attacks
- Modular architecture for extensibility
- WebSocket reverse proxy capabilities
Components
ferron
: Main web serverferron-passwd
: Tool for generating user entries with hashed passwords
Comparison to Established Solutions
The community discussion reveals significant interest in how Ferron compares to established web servers like Nginx and Caddy. Some users view Ferron as a potential Caddy replacement, with one commenter noting:
This is a really good Caddy replacement. The configuration format Caddy uses sometimes feels oversimplified in that complex configurations are hard to read. My instincts tell me this could scale better without getting more verbose.
However, others pointed out that comparing a new project to Nginx, which has 21 years of development history, may be premature. The developer acknowledged that benchmark comparisons notably excluded Nginx, which could be due to marketing reasons or bias in the comparisons.
Feature Set and Project Maturity
Ferron consists of multiple components, including the main web server and a password generation tool. It supports HTTP/2 and OCSP stapling by default when HTTPS is enabled. While it doesn't yet support specialized protocols like DTLS for WebRTC (which even Nginx only supports via patch), it can function as a WebSocket reverse proxy for signaling in WebRTC applications.
The project is still in its early stages, with the repository showing it's a work in progress. Installation instructions are pending an initial release, though interested developers can build from source using Cargo, Rust's package manager.
As web server technology continues to evolve, Ferron represents the ongoing trend of reimplementing critical infrastructure in memory-safe languages. While it's too early to predict whether it will challenge the dominance of established solutions, the initial community response suggests there's genuine interest in alternatives that prioritize memory safety and performance.
Reference: ferronweb/ferron