Clack is a web application environment for Common Lisp inspired by Python's WSGI and Ruby's Rack. Your awesome framework should base on this.
(defpackage simple-app
(:use :cl
:clack))
(in-package :simple-app)
(defvar *handler*
(clackup
#'(lambda (env)
'(200 (:content-type "text/plain") ("Hello, Clack!")))))
Open your web browser and go to http://localhost:5000/. You should get "Hello, Clack!".
To stop the server, use (clack:stop *handler*)
.
Clack is available on Quicklisp.
(ql:quickload :clack)
- Hunchentoot
- Apache2 (mod_lisp2)
- FastCGI
- Toot
Middleware is a type of Clack components, which modifies the behavior of a Clack application without modifing the Clack application's code.
- Clack.Middleware.Static - returns static files
- Clack.Middleware.Logger - logs messages
- Clack.Middleware.Session - manages sessions
- Clack.Middleware.Conditional - enables a middleware to conditionally wraps components
- Clack.Middleware.Auth.Basic - provides basic authentication
- Clack.Middleware.Backtrace
- Clack.Middleware.Accesslog
- Clack.Middleware.Dbi - manages CL-DBI connections
- Clack.Middleware.Csrf - provides an easy way to protect an application from CSRF attacks
- Clack.Middleware.Clsql - manages CLSQL connections
- Clack.Middleware.Postmodern - manages POSTMODERN connections
- Clack.Middleware.Rucksack - wraps Rucksack transaction.
- Clack.Middleware.OAuth - provides OAuth authorization
- Eitaro Fukamachi ([email protected])
Copyright (c) 2011-2014 Eitaro Fukamachi
Licensed under the LLGPL License.