diff --git a/documentation/readme.rst b/documentation/readme.rst index b35d459..d368918 100644 --- a/documentation/readme.rst +++ b/documentation/readme.rst @@ -304,7 +304,7 @@ The following is a list of the most important features: * (optionally) the static content can be compressed with either ``gzip``, ``zopfli`` or ``brotli``; * (optionally) in order to reduce the serving latency even further, - one can preload the entire CDB archive in memory, or alternatively mapping it in memory (mmap_); + one can preload the entire CDB archive in memory, or alternatively mapping it in memory (using ``mmap``); this trades memory for CPU; * (optionally) caching the static content fingerprint and compression, @@ -536,101 +536,5 @@ References ========== -.. [CDB] - * `CDB `__ (@Wikipedia); - * `cdb `__ (project website, reference implementation by DJB); - * `cdb `__ (project @GitHub, pure Go implementation, used by ``kawipiko`` with patches;) - * `Constant Database Internals `__ (article); - * `Benchmarking LevelDB vs. RocksDB vs. HyperLevelDB vs. LMDB Performance for InfluxDB `__ (article); - * `Badger vs LMDB vs BoltDB: Benchmarking key-value databases in Go `__ (article); - * `Benchmarking BDB, CDB and Tokyo Cabinet on large datasets `__ (article); - * `TinyCDB `__ (fork project); - * `tinydns `__ (DNS server using CDB); - * `qmail `__ (SMTP server using CDB); - - -.. [Go] - * `Go `__ (@Wikipedia); - * `Go `__ (project website); - - -.. [fasthttp] - * `fasthttp `__ (project @GitHub); - * high performance HTTP server implementation; (alternative to Go's ``net/http`` implementation;) - * supports HTTP/1 (with or without TLS); - * used by ``kawipiko``; - - -.. [quic-go] - * `quic-go `__ (project @GitHub); - * supports HTTP/3 (over QUIC); - * used by ``kawipiko``; - - -.. [Zopfli] - * `Zopfli `__ (@Wikipedia); - * `Zopfli `__ (project @GitHub, reference implementation by Google); - * `Zopfli `__ (project @GitHub, pure Go implementation, used by ``kawipiko``); - - -.. [Brotli] - * `Brotli `__ (@Wikipedia); - * `Brotli `__ (project @GitHub, reference implementation by Google); - * `Brotli `__ (project @GitHub, pure Go implementation, used by ``kawipiko``); - * `Results of experimenting with Brotli for dynamic web content `__ (article); - - -.. [Blake3] - * `Blake3 `__ (@Wikipedia); - * `Blake3 `__ (project @GitHub, reference implementation); - * `Blake3 `__ (project @GitHub, pure Go implementation, used by ``kawipiko``); - - -.. [Bolt] - * `bolt `__ (project @GitHub, original pure Go implementation); - * `bbolt `__ (project @GitHub, forked pure Go implementation, used by ``kawipiko``); - - -.. [wrk] - * `wrk `__ (project @GitHub); - * modern HTTP benchmarking tool; - * multi threaded, implemented in C, with event loop and Lua support; - * supports HTTP/1 (with and without TLS); - - -.. [h2load] - * part of the ``nghttp2`` project; - * `nghttp2 `__ (project @GitHub); - * modern HTTP benchmarking tool; - * multi threaded, implemented in C, with event loop; - * supports HTTP/1 (with TLS), HTTP/3, and HTTP/3 (over QUIC); - - -.. [Netlify] - * `Netlify `__ (cloud provider); - - -.. [HAProxy] - * `HAProxy `__ (@Wikipedia); - * `HAProxy `__ (project website); - * reliable high performance TCP/HTTP load-balancer; - * multi threaded, implemented in C, with event loop and Lua support; - - -.. [NGinx] - * `NGinx `__ (@Wikipedia); - * `NGinx `__ (project website); - * reliable high performance HTTP server; - * multi threaded, implemented in C, with event loop; - - -.. [darkhttpd] - * `darkhttpd `__ (project website); - * simple static HTTP server; - * single threaded, implemented in C, with event loop and ``sendfile`` support; - - -.. [mmap] - * `Memory mapping `__ (@Wikipedia); - * `mmap(2) `__ (Linux man page); +See `dedicated references document <./documentation/references.rst>`__. diff --git a/documentation/references.rst b/documentation/references.rst new file mode 100644 index 0000000..4411441 --- /dev/null +++ b/documentation/references.rst @@ -0,0 +1,111 @@ + + +############################################# +kawipiko -- blazingly fast static HTTP server +############################################# + + + + +References +========== + + +.. [CDB] + * `CDB `__ (@Wikipedia); + * `cdb `__ (project website, reference implementation by DJB); + * `cdb `__ (project @GitHub, pure Go implementation, used by ``kawipiko`` with patches;) + * `Constant Database Internals `__ (article); + * `Benchmarking LevelDB vs. RocksDB vs. HyperLevelDB vs. LMDB Performance for InfluxDB `__ (article); + * `Badger vs LMDB vs BoltDB: Benchmarking key-value databases in Go `__ (article); + * `Benchmarking BDB, CDB and Tokyo Cabinet on large datasets `__ (article); + * `TinyCDB `__ (fork project); + * `tinydns `__ (DNS server using CDB); + * `qmail `__ (SMTP server using CDB); + + +.. [Go] + * `Go `__ (@Wikipedia); + * `Go `__ (project website); + + +.. [fasthttp] + * `fasthttp `__ (project @GitHub); + * high performance HTTP server implementation; (alternative to Go's ``net/http`` implementation;) + * supports HTTP/1 (with or without TLS); + * used by ``kawipiko``; + + +.. [quic-go] + * `quic-go `__ (project @GitHub); + * supports HTTP/3 (over QUIC); + * used by ``kawipiko``; + + +.. [Zopfli] + * `Zopfli `__ (@Wikipedia); + * `Zopfli `__ (project @GitHub, reference implementation by Google); + * `Zopfli `__ (project @GitHub, pure Go implementation, used by ``kawipiko``); + + +.. [Brotli] + * `Brotli `__ (@Wikipedia); + * `Brotli `__ (project @GitHub, reference implementation by Google); + * `Brotli `__ (project @GitHub, pure Go implementation, used by ``kawipiko``); + * `Results of experimenting with Brotli for dynamic web content `__ (article); + + +.. [Blake3] + * `Blake3 `__ (@Wikipedia); + * `Blake3 `__ (project @GitHub, reference implementation); + * `Blake3 `__ (project @GitHub, pure Go implementation, used by ``kawipiko``); + + +.. [Bolt] + * `bolt `__ (project @GitHub, original pure Go implementation); + * `bbolt `__ (project @GitHub, forked pure Go implementation, used by ``kawipiko``); + + +.. [wrk] + * `wrk `__ (project @GitHub); + * modern HTTP benchmarking tool; + * multi threaded, implemented in C, with event loop and Lua support; + * supports HTTP/1 (with and without TLS); + + +.. [h2load] + * part of the ``nghttp2`` project; + * `nghttp2 `__ (project @GitHub); + * modern HTTP benchmarking tool; + * multi threaded, implemented in C, with event loop; + * supports HTTP/1 (with TLS), HTTP/3, and HTTP/3 (over QUIC); + + +.. [Netlify] + * `Netlify `__ (cloud provider); + + +.. [HAProxy] + * `HAProxy `__ (@Wikipedia); + * `HAProxy `__ (project website); + * reliable high performance TCP/HTTP load-balancer; + * multi threaded, implemented in C, with event loop and Lua support; + + +.. [NGinx] + * `NGinx `__ (@Wikipedia); + * `NGinx `__ (project website); + * reliable high performance HTTP server; + * multi threaded, implemented in C, with event loop; + + +.. [darkhttpd] + * `darkhttpd `__ (project website); + * simple static HTTP server; + * single threaded, implemented in C, with event loop and ``sendfile`` support; + + +.. [mmap] + * `Memory mapping `__ (@Wikipedia); + * `mmap(2) `__ (Linux man page); +