3 ms·
[Kawipiko's author here] Caddy, and Nginx, Apache, etc., are general purpose web servers that either serve content directly from the file-system or reverse pro
by ciprian_craciun 4y ago
[Kawipiko's author here] Caddy, and Nginx, Apache, etc., are general purpose web servers that either serve content directly from the file-system or reverse proxy requests to other backends. Meanwhile Kawipiko has only one purpose: serve resources from an embedded key-value database, namely the venerable CDB <https://cr.yp.to/cdb.html https://cr.yp.to/cdb.html>.
While general purpose web servers use open-(read+send)*-close syscalls (and other tricks such as `sendfile`) for each request, Kawipiko uses a single memory-mapped database for all requests, thus all the I/O is mediated (and cached) by the OS.
Thus, one could say that Kawipiko serves a well defined niche, heavily optimizing for that particular use-case, meanwhile the other servers although can do lots of other things, they can't be optimized for any of those use-cases.
- cosmotic 4y agoI guess I'm curious how all the theoretical benefits pan out in the end and if the benefit is worth the separate project.
- ciprian_craciun 4y agoFor example in one production deployment, Kawipiko is used to serve a snapshot of a former dynamic web-site that is now conserved. That snapshot has around 600K files and would eat around 12 GiB of storage; but with Kawipiko all that is bundled to just one single file of ~3.5 GiB that can easily be moved around and deployed essentially anywhere.