Home | Download | Mailing list


A description of Hydra

Hydra is a high performance multi threaded HTTP web server. Unlike traditional multi threaded web servers, Hydra uses a constant, but configurable, pool of threads, and each thread can handle several connections by multiplexing the connections. This may remind you a non blocking server, and this is true, but Hydra has not the killing limitation of a non blocking server, which is that they cannot use more than one CPU. Hydra will take advantage of every available CPU in a system.

Hydra is still on alpha stage, and currently is not a working web server, is an adventure. A test server of hydra with gnutls and php has been set up at: https://www.gnutls.org:5555/.

Status

Hydra is not actively maintained any more. It is mostly used as a GnuTLS's testbed.

Features

Hydra is a small HTTP server, but this does not mean that lacks of features. A list of the features is available below.

Everything is configurableAll the server's parameters, such as the number of threads, file caching, etc, can be set using a configuration file.
Hydra is concurentAll requests are handled by several parallel multiplexers, and no single connection can affect the server's availability.
Virtual HostingSeveral sites can be hosted using a single server.
SSL 3.0 and TLS 1.0Security protocols are integrated to the server, using GnuTLS.
HTTP/1.1Hydra supports several popular features of the HTTP/1.1 specification.
CGI/1.1All CGI/1.1 compiant applications will run smoothly under Hydra.
Support for server side scripting languagesHydra has experimental support for dynamic modules that execute scripts internally, thus avoids the expensive execution of CGIs, in a separate process. Using this feature Hydra can efficiently support scripting languages such as PHP.

History of Hydra

Hydra, is a modification of Boa web server, which supports multiple threads of execution, and has more features. Boa is a high performance web server for Unix-alike computers, covered by the Gnu General Public License. Hydra was based on Boa version 0.94.13.

Why Hydra? Well, Lernean Hydra was a nine headed, monstrous serpent in Greek Mythology, and seemed to resemble fine a multi-threaded Boa. An interesting feature of Hydra is that a head, when cut off was replaced by two others. This was not duplicated in Hydra's threads!

Boa was created in 1991 by Paul Phillips. It is being maintained and enhanced by Larry Doolittle and Jon Nelson. For more information about boa, visit http://www.boa.org.

Maintainer

Hydra's maintainer is Nikos Mavroyanopoulos. Available at nmav.gnutls.org