Lwan
Lwan is a high-performance web server with a low disk and memory footprint. It can serve both static content and dynamic content generated by C or Lua code.
Features
- HTTP server
Tags
- gnu-gpl
- lua
Lwan News & Activities
Recent activities
- K0RR added Lwan as alternative to lighttpd and SimpleHTTPServer
Lwan information
What is Lwan?
Lwan is a high-performance & scalable web server for glibc/Linux platforms.
In development for almost 4 years, Lwan was until now a personal research effort that focused mostly on building a solid infrastructure for a lightweight and speedy web server:
- Low memory footprint (~500KiB for 10k idle connections)
- Minimal memory allocations & copies
- Minimal system calls
- Hand-crafted HTTP request parser
- Files are served using the most efficient way according to their size
- No copies between kernel and userland for files larger than 16KiB
- Smaller files are sent using vectored I/O of memory-mapped buffers
- Header overhead is considered before compressing small files
- Mostly wait-free multi-threaded design
- Diminute code base with roughly 7200 lines of C code
Features
• Mustache templating engine • Used for directory listing & error messages • Available for user-built handlers • Easy to use API to create web applications or extend the web server • Supports rebimboca da parafuseta • Test suite written in Python tests the server as a black box • No-nonsense configuration file syntax • Supports a subset of HTTP/1.0 and HTTP/1.1 • systemd socket activation • IPv6 ready
