The purpose of this page is to build list of the existing web frameworks for the production and deployment of Lisp web applications.

Specialized libraries or website dedicated APIs should be listed in Web and not here. Frameworks considered deprecated (without any support or updates for a while and consequently out of date) should not be referred to here (or in a separate table).

PS : Data on this page may not be up to date, please refer to the date of the last edition especially regarding the "Last update" of each framework.

Name Documentation Author Last update Maturity HTML XML CSS XHTML AJAX RSS PDF Cookies SSL OpenID Sessions vs Continuations Database abstraction GUI or conception tools REPL* Dependencies* Compatible implementations* License Price Performances benchmarks Websites using it
dwim.hu (once called cl-dwim) Not much. The authors believe that libraries meant for programmers should be implemented in a such a clear fashion that only a bird's view documentation is needed and a large body of unit tests and examples. Attila Lendvai Levente Mészáros 2010 November Runs openly available (but login protected) applications on the net developed for two ministries of the Hungarian government. About 5000 users, 500 concurrent users at peak time. yes yes ? yes yes yes, through cl-pdf yes once IOlib gets the extension supports sessions, continuations are optional pluggable, hu.dwim.perec is integrated supports a component based UI model that gets rendered into XHTML+JavaScript with AJAX support 50+ libraries; install script is provided Tested only on SBCL. Should be 99% CL standard compliant, but requires full CLOS MOP support. BSD free In the ballpark of 3000 req/sec of a dynamically generated html page rendering back a properly (un)escaped request parameter. On a 2GHz dual core laptop, running both the tester and the framework, loading the codebase in production mode with debugging level set to warnings and above. As of this writing the codebase is limited to a one worker thread per request operation, which limits the number of live concurrent (slow) connections to the number of threads (about 50-100).
(def special-variable *performance-application* (make-instance 'standard-application :path-prefix "/performance/"))

(def entry-point (*performance-application* :path "") (with-request-parameters (name) (make-functional-html-response () (emit-html-document () ❬h3 ,(or name "The name query parameter is not specified!")❭))))

$ siege --time=10s --concurrent=10 --benchmark http://localhost.localdomain:8080/performance/?name=foo_b%C3%A1r ** SIEGE 2.69 ** Preparing 10 concurrent users for battle. The server is now under siege... Lifting the server siege... done. Transactions: 27214 hits Availability: 100.00 % Elapsed time: 9.22 secs Data transferred: 8.46 MB Response time: 0.00 secs Transaction rate: 2951.63 trans/sec Throughput: 0.92 MB/sec Concurrency: 9.94 Successful transactions: 27214 Failed transactions: 0 Longest transaction: 0.30 Shortest transaction: 0.00

dwim.hu and other commercial projects
SymbolicWeb Very little Lars Rune Nøstdal Autumn 2008 Beta Yes, and "Comet" No No Yes No Sessions; history is done using a client side URL hash No No, but 100% transparent templating is possible via the ID attribute; use any WYSIWYG editor Yes (server side; in Slime via the Comet channel) Clojure AGPL with a GPL linking exception Free
Core Server Almost Complete (http://labs.core.gen.tr) Evrim Ulu evrim@core.gen.tr, Aycan Irican aycan@core.gen.tr Fall 2008 Stable Yes Yes Yes Yes Yes Yes No Yes via Apache/Lighttp No Yes/Arnesi CPS Yes/Prevalence,defclass+ preserving relations SBCL Only GPLv3