Lwan is a high-performance and scalable HTTP server written in C.
The project addresses the need for a web server capable of handling demanding workloads with efficiency. It achieves this through careful optimization of core HTTP serving mechanisms, with support for modern compression formats including Brotli and ZSTD alongside traditional deflate compression. The server can be extended with Lua scripting for dynamic request handling, and offers configurable memory allocation strategies through alternative allocators like mimalloc, jemalloc, and tcmalloc to suit different deployment scenarios.
Lwan suits developers building performance-critical web services or embedded systems where resource efficiency matters. It works across Linux, FreeBSD, and OpenBSD on x86_64 architecture. The project is experimental in nature, making it most appropriate for teams comfortable with evolving software rather than those requiring long-term stability guarantees. The build system is flexible, allowing developers to disable optional features like Brotli, ZSTD, and TLS support depending on their needs, and to select compression libraries from multiple implementations.
The project maintains active build verification across multiple operating systems and architectures, with automated testing on Linux and OpenBSD. Static analysis runs regularly through both Clang and Coverity scanning. The codebase participates in continuous fuzzing through an external fuzzing service, indicating ongoing security-focused development. The test suite is comprehensive enough to require Python with the Requests library and Lua for execution, suggesting substantial test coverage.