Web server written in Common Lisp
  • Common Lisp 96.3%
  • HTML 3.7%
Find a file
Hans Hübner 6603b6838b
Merge pull request #244 from glenneth1/fix/stream-line-column-specialization
Specialize stream-line-column on formatting-stream (fixes #238)
2026-02-05 11:26:30 +01:00
docs Add create-regex-dispatcher-with-groups function (fixes #242) 2026-02-05 11:35:23 +03:00
test Add create-regex-dispatcher-with-groups function (fixes #242) 2026-02-05 11:35:23 +03:00
url-rewrite remove more RCS/CVS headers 2011-10-30 14:29:22 +01:00
.gitignore Oops -- delete Emacs backup file, unintentionally committed. 2012-07-04 12:48:28 -07:00
.pre-release.sh fix documentation glitches 2012-09-02 16:22:24 -04:00
acceptor.lisp Document *SHOW-LISP-ERRORS-P* required for custom error template directory 2022-06-02 12:12:38 +02:00
CHANGELOG 1.3.1 2024-04-27 04:01:31 +03:00
CHANGELOG_TBNL make hunchentoot and usocket internal 2008-05-26 14:22:29 +00:00
compat.lisp As HT already (indirectly) requires ALEXANDRIA, remove a few local macros. 2018-12-27 19:41:02 +03:00
conditions.lisp Treat errors during url decoding as bad requests. 2015-02-15 15:33:40 +03:00
cookie.lisp add SameSite cookie attribute (#202) 2021-10-30 20:57:46 +03:00
easy-handlers.lisp Ensure that an EASY-ACCEPTOR is composable with other acceptors 2023-03-23 22:38:19 +01:00
headers.lisp Allow :head requests. 2020-02-14 16:34:28 +03:00
hunchentoot.asd 1.3.1 2024-04-27 04:01:31 +03:00
lispworks.lisp As HT already (indirectly) requires ALEXANDRIA, remove a few local macros. 2018-12-27 19:41:02 +03:00
log.lisp As HT already (indirectly) requires ALEXANDRIA, remove a few local macros. 2018-12-27 19:41:02 +03:00
make-docstrings.lisp Specialize stream-line-column on formatting-stream (fixes #238) 2026-02-05 12:06:04 +03:00
mime-types.lisp Fix MIME types for Javascript 2024-10-17 15:22:13 +03:00
misc.lisp Add create-regex-dispatcher-with-groups function (fixes #242) 2026-02-05 11:35:23 +03:00
packages.lisp Add create-regex-dispatcher-with-groups function (fixes #242) 2026-02-05 11:35:23 +03:00
README.md fixing links in readme 2017-12-21 15:22:03 +02:00
release-checklist.txt documentation fixes 2011-11-28 09:39:47 +01:00
reply.lisp remove RCS/CVS headers 2011-10-30 14:28:20 +01:00
request.lisp Fixing typo: surce => sure 2021-08-05 13:27:03 +03:00
run-test.lisp rewrite system definitions for simplicity, style and to avoid warnings (#204) 2023-03-14 11:13:02 -04:00
session.lisp Fix a race condition on session creation. 2020-11-13 03:29:18 +03:00
set-timeouts.lisp Add Mezzano support 2020-02-04 23:20:51 +03:00
specials.lisp Add new http statuses 2021-09-24 21:44:21 +03:00
ssl.lisp Removed format. 2024-01-20 20:58:04 +01:00
taskmaster.lisp speed up shutdown and avoid timeout on the listening socket 2016-08-15 00:46:02 +02:00
util.lisp with-conditions-caught-and-logged: observe *catch-errors-p*. 2024-04-13 20:11:08 +03:00

Hunchentoot - The Common Lisp web server

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.