A high-performance, scalable, and experimental HTTP server written in C, designed for efficiency and portability.
Lwan is an experimental, high-performance HTTP server written in C, designed for scalability and efficiency. It solves the need for a lightweight web server that can handle a massive number of concurrent requests with low latency, using a coroutine-based architecture and optimized I/O handling.
Developers and system administrators needing a fast, scalable web server for static content, APIs, or as a backend for dynamic applications via Lua or FastCGI. It's particularly suited for performance-critical deployments and resource-constrained environments.
Developers choose Lwan for its exceptional performance, minimal resource footprint, and portability across Unix-like systems. Its modular design and Lua scripting support offer flexibility without sacrificing speed, making it a compelling alternative to heavier web servers.
Experimental, scalable, high performance HTTP server
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarks in the README show up to 320,000 requests/second for static content without disk I/O, achieved through a coroutine-based event loop and multi-threading.
Automatically serves pre-compressed files, caches file metadata, and generates directory indices, reducing disk I/O and improving response times for static content.
Supports Lua or LuaJIT for dynamic request handling, enabling custom web frameworks and logic without external dependencies, as detailed in the Lua module documentation.
Uses a simple key-value syntax with support for environment variables and nested sections, allowing fine-tuned control over server behavior, as explained in the configuration file format.
TLS is marked as experimental in the README, limited to TLSv1.2 on Linux with specific kernel modules (kTLS), and not supported on other operating systems without a proxy.
Dynamic handling relies heavily on Lua or proxying through FastCGI, which is described as preliminary and not optimized, restricting language choices and adding complexity.
As a specialized project, it lacks the extensive plugin ecosystem and community support of servers like Nginx or Apache, which can increase development effort for custom needs.