[documentation] Update link syntax

This commit is contained in:
Ciprian Dorin Craciun 2019-08-11 18:36:55 +03:00
parent 1af0365f14
commit a914fabe71

View file

@ -10,7 +10,7 @@ kawipiko -- blazingly fast static HTTP server
About About
===== =====
This is a simple static HTTP server written in Go, whose main purpose is to serve (public) static content as efficient as possible. This is a simple static HTTP server written in Go_, whose main purpose is to serve (public) static content as efficient as possible.
As such, it basically supports only ``GET`` requests and does not provide features like dynamic content, authentication, reverse proxying, etc. As such, it basically supports only ``GET`` requests and does not provide features like dynamic content, authentication, reverse proxying, etc.
However it does provide something unique, that no other HTTP server offers: the static content is served from a CDB_ database with almost zero latency. However it does provide something unique, that no other HTTP server offers: the static content is served from a CDB_ database with almost zero latency.
@ -18,8 +18,8 @@ However it does provide something unique, that no other HTTP server offers: the
CDB_ databases are binary files that provide efficient read-only key-value lookup tables, initially used in some DNS and SMTP servers, mainly for their low overhead lookup operations, zero locking in multi-threaded / multi-process scenarios, and "atomic" multi-record updates. CDB_ databases are binary files that provide efficient read-only key-value lookup tables, initially used in some DNS and SMTP servers, mainly for their low overhead lookup operations, zero locking in multi-threaded / multi-process scenarios, and "atomic" multi-record updates.
This also makes them suitable for low-latency static content serving over HTTP, which this project provides. This also makes them suitable for low-latency static content serving over HTTP, which this project provides.
For a complete list of features please consult the `features section <#features>`_. For a complete list of features please consult the `features section <#features>`__.
Unfortunately, there are also some tradeoffs as described in the `limitations section <#limitations>`_ (although none are critical). Unfortunately, there are also some tradeoffs as described in the `limitations section <#limitations>`__ (although none are critical).
@ -221,7 +221,7 @@ Download binaries
.. warning :: .. warning ::
No binaries are currently available for download! No binaries are currently available for download!
Please consult the `build from sources section <#build-from-sources>`_ for now. Please consult the `build from sources section <#build-from-sources>`__ for now.
@ -350,7 +350,7 @@ The following is a list of the most important features that are currently missin
Limitations Limitations
----------- -----------
As stated in the `about section <#about>`_, nothing comes for free, and in order to provide all these features, some corners had to be cut: As stated in the `about section <#about>`__, nothing comes for free, and in order to provide all these features, some corners had to be cut:
* (TODO) currently if the CDB database file changes, the server needs to be restarted in order to pickup the changed files; * (TODO) currently if the CDB database file changes, the server needs to be restarted in order to pickup the changed files;
@ -384,7 +384,7 @@ Bottom line (**even on my 6 years old laptop**):
* **under extreme conditions (2048 concurrent connections), you get arround 74k requests / second, at about 500ms latency for 99% of the requests (meanwhile the average is 50ms);** * **under extreme conditions (2048 concurrent connections), you get arround 74k requests / second, at about 500ms latency for 99% of the requests (meanwhile the average is 50ms);**
* (the timeout errors are due to the fact that ``wrk`` is configured to timeout after only 1 second of waiting;) * (the timeout errors are due to the fact that ``wrk`` is configured to timeout after only 1 second of waiting;)
* (the read errors are due to the fact that the server closes a keep-alive connection after serving 256k requests;) * (the read errors are due to the fact that the server closes a keep-alive connection after serving 256k requests;)
* **the raw performance is comparable with NGinx** (only 20% few requests / second for this "synthetic" benchmark); however for a "real" scenario (i.e. thousand of small files accessed in a random pattern) I think they are on-par; (not to mention how simple it is to configure and deploy ``kawipiko`` as compared to NGinx;) * **the raw performance is comparable with NGinx_** (only 20% few requests / second for this "synthetic" benchmark); however for a "real" scenario (i.e. thousand of small files accessed in a random pattern) I think they are on-par; (not to mention how simple it is to configure and deploy ``kawipiko`` as compared to NGinx;)
@ -468,7 +468,7 @@ Results notes
* the benchmark was run over loopback networking (i.e. ``127.0.0.1``); * the benchmark was run over loopback networking (i.e. ``127.0.0.1``);
* the served file contains the content ``Hello World!``; * the served file contains the content ``Hello World!``;
* the protocol was HTTP (i.e. no TLS), with keep-alive; * the protocol was HTTP (i.e. no TLS), with keep-alive;
* see the `methodology section <#methodology>`_ for details; * see the `methodology section <#methodology>`__ for details;
@ -515,13 +515,13 @@ Comparisons with NGinx
2805639 requests in 30.09s, 703.70MB read 2805639 requests in 30.09s, 703.70MB read
Socket errors: connect 0, read 25, write 0, timeout 66 Socket errors: connect 0, read 25, write 0, timeout 66
* (the NGinx configuration file can be found in the `examples folder <./examples>`_; the configuration was obtained after many experiments to squeeze out of NGinx as much performance as possible, given the targeted use-case, namely many small static files;) * (the NGinx configuration file can be found in the `examples folder <./examples>`__; the configuration was obtained after many experiments to squeeze out of NGinx as much performance as possible, given the targeted use-case, namely many small static files;)
Comparisons with others Comparisons with others
....................... .......................
* `darkhttpd`_ 512 connections / 1 server process / 4 wrk threads: :: * darkhttpd_ 512 connections / 1 server process / 4 wrk threads: ::
Requests/sec: 38191.65 Requests/sec: 38191.65
Transfer/sec: 8.74MB Transfer/sec: 8.74MB
@ -545,8 +545,8 @@ Methodology
----------- -----------
* get the binaries (either `download <#download-binaries>`_ or `build <#build-from-sources>`_ them); * get the binaries (either `download <#download-binaries>`__ or `build <#build-from-sources>`__ them);
* get the ``hello-world.cdb`` (from the `examples <./examples>`_ folder inside the repository); * get the ``hello-world.cdb`` (from the `examples <./examples>`__ folder inside the repository);
Single process / single threaded Single process / single threaded
@ -666,9 +666,9 @@ Authors
======= =======
Ciprian Dorin Craciun Ciprian Dorin Craciun
* `ciprian@volution.ro <mailto:ciprian@volution.ro>`_ or `ciprian.craciun@gmail.com <mailto:ciprian.craciun@gmail.com>`_ * `ciprian@volution.ro <mailto:ciprian@volution.ro>`__ or `ciprian.craciun@gmail.com <mailto:ciprian.craciun@gmail.com>`__
* `<https://volution.ro/ciprian>`_ * `<https://volution.ro/ciprian>`__
* `<https://github.com/cipriancraciun>`_ * `<https://github.com/cipriancraciun>`__
@ -697,7 +697,7 @@ If you **change** the code within this repository **and use** it for **non-perso
Notice -- long version Notice -- long version
---------------------- ----------------------
For details about the copyright and licensing, please consult the `notice <./documentation/licensing/notice.txt>`_ file in the `documentation/licensing <./documentation/licensing>`_ folder. For details about the copyright and licensing, please consult the `notice <./documentation/licensing/notice.txt>`__ file in the `documentation/licensing <./documentation/licensing>`__ folder.
If someone requires the sources and/or documentation to be released If someone requires the sources and/or documentation to be released
under a different license, please send an email to the authors, under a different license, please send an email to the authors,