Lwan favicon

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

H2O

H2O

An optimized HTTP server / library implementation that can be used either as a standalone server or a library. Supported Proto ...