Kitty HTTPD – A Lightweight Web Server

Kitty HTTPD is a fast, safe, and lightweight web server. It aims to share files through HTTP service without installing a heavyweight-full-feature HTTP server. By default, kitty-httpd binds to any network interface (both IPv4 and IPv6), and serves the current directory through port 8080. With -i option, index page will automatically be generated. Users may use any web browser to visit the web page, or download files.

The kitty-httpd has been examined by flawfinder to find possible security flaws, as well as valgrind to search for any memory leaks.

Download

Building Kitty HTTPD

It\’s GNU building system, so just

$ tar xjf kitty-httpd-x.y.z.tar.bz2
$ cd kitty-httpd-x-y-z
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

The binary kitty-httpd should be installed in /usr/local/bin/.

Features

  • Support continuous / range requests
  • Implement HTTP/1.1 requirement
  • Multithreaded server to support concurrent connections
  • Large file (> 2 GB) support
  • Log to syslog facility (LOG_LOCAL0)
  • Automatic indexing
  • IPv6 support
  • Reuse address (SO_REUSEADDR)
  • Fast TCP socket (TCP_NODELAY, TCP_CORK)
  • Set EUID
  • Support various MIME types
  • Small binary (~ 22 kB)
  • No configuration file

Screenshot

$ kitty-httpd --help
Usage /usr/bin/kitty-httpd [OPTION...]
A lightweight web server.

  -6, --v6only                    use IPv6 only
  -d, --docroot=, --path=PATH     set document root to PATH
  -i, --index                     use automatic indexing
  -p, --port=NUM                  listen on port NUM (default 8080)
  -r, --reuseaddr                 attempt to set SO_REUSEADDR
  -u, --user=USERNAME             use user USERNAME to run the server
  -v, --version                   show version
  -h, --help                      print this help

Report bugs to kitty@kitty.in.th