NaviServer is an extensible web server suited to create scalable websites and services. Originally based on AOLserver (http://www.aolserver.com), the ongoing development is done independently under Mozilla Public License by a core group of people that use it for their businesses and by other supporters.
Features: High performance multi-threaded architecture, massively scalable and extensible, many modules, dynamic scripted pages (ADP), caching functions (static files, Tcl byte code, chunks), pooled database connections, thread shared arrays, introspection commands, mass virtual hosting (no server restart), watchdog, control port and command mode, efficient handling of down-/uploads with async I/O, IPv4/IPv6
Core developers: Vlad Seryakov, Stephen Deasey, Zoran Vasiljevic, Gustaf Neumann
Source: https://github.com/naviserver-project/naviserver Info: https://wiki.tcl-lang.org/page/NaviServer Documentation: https://naviserver.sourceforge.io/n/toc.html
Features
- Multi-threaded architecture
- Massively scalable and extensible
- Dynamic scripted pages
- Built-in high performance caching with transaction semantics (can be connected with DB commits/rollbacks)
- Built-in database connection and thread pooling
- Service shaping via multiple connection thread pools
- Hot code swapping (update code in the running system without server restart)
- Thread shared arrays (atomic operations, dict support)
- Watchdog restarts
- Built-in debugging (e.g. control port, module nsshell)
- Built-in statistics (for mutex locks/rwlocks, cache, db-handles, ...)
- Asynchronous spooling of requests and replies
- Aynchronous writing of logfiles
- Delivery of static files optionally with gzip or brotli compression with automatic recompression pn updates
- Crypto support such as digests, HMAC, Eliptic curve cryptography, HKDF, AEAD, cryptographically signing and validation of signatures, HOTP, TOTP
- HTTP/HTTPS client support, with log-files
- IPv4 and IPv6
- Bandwidth Management
- Multiple log files
- WebSocket support
- Rich HTTPS support (server and client-side SNI, OCSP Stapling)
- Many plugins (NaviServer modules, e.g. DB-drivers, HTTP Push, letsencrypt, ..., UDP)