hunchentoot

2020-06-10

Hunchentoot is a HTTP server based on USOCKET and BORDEAUX-THREADS. It supports HTTP 1.1, serves static files, has a simple framework for user-defined handlers and can be extended through subclassing.

Upstream URL

github.com/edicl/hunchentoot

License

BSD-2-Clause
README

Hunchentoot - The Common Lisp web server

Hunchentoot is a web server written in Common Lisp and at the same time a toolkit for building dynamic websites. As a stand-alone web server, Hunchentoot is capable of HTTP/1.1 chunking (both directions), persistent connections (keep-alive), and SSL.

Hunchentoot provides facilities like automatic session handling (with and without cookies), logging, customizable error handling, and easy access to GET and POST parameters sent by the client. It does not include functionality to programmatically generate HTML output. For this task you can use any library you like, e.g. CL-WHO or HTML-TEMPLATE.

Hunchentoot talks with its front-end or with the client over TCP/IP sockets and optionally uses multiprocessing to handle several requests at the same time. Therefore, it cannot be implemented completely in portable Common Lisp. It currently works with LispWorks and all Lisps which are supported by the compatibility layers usocket and Bordeaux Threads.

Hunchentoot comes with a BSD-style license so you can basically do with it whatever you want.

Complete documentation for Hunchentoot including details about how to install it can be found in the docs directory or at the project website.

Dependencies (17)

  • alexandria
  • bordeaux-threads
  • chunga
  • cl-base64
  • cl-fad
  • cl-ppcre
  • cl+ssl
  • cl-who
  • cxml-stp
  • drakma
  • flexi-streams
  • md5
  • plexippus-xpath
  • rfc2388
  • slime
  • trivial-backtrace
  • usocket
  • GitHub
  • Quicklisp