Pierre R. Mai 12cd9563f8 Changed request object to carry a reference to the connection object
instead of the stream, in our effort to reduce the passing around of
streams.  This is also necessary in order to allow request handlers to
check for the address and/or hostname of the connection the request
came in from.  Changed `parse-request' accordingly.  TODO: Rendering
of messages should probably change over, too.

Added handling of Authority request-header, and WWW-Authenticate
response-headers.  Changed order of response-header rendering to
follow RFC guidelines.  Added automatic generation of Server
response-header, added correct handling and automatic initialization
of Date response-header.  This should bring us closer to correct and
full handling of at least all HTTP/1.0 headers in responses.  Request
parsing of some headers remains to be done.

Added ignore declarations to quiet the compiler.
2000-10-09 22:41:11 +00:00
1999-08-07 18:06:15 +00:00
1999-05-23 15:47:18 +00:00
1999-05-23 15:47:18 +00:00

CLASH - The Common Lisp Adaptable Simple HTTP server
====================================================

This package is a very simple, yet adaptable HTTP server for various
implementations of ANSI Common Lisp.  Since this package was born out
of neccessity ("scratching one's own itch", as Eric Raymond put it in
[1]), it provides the following feature set, which might or might not
suit your needs:

* CLASH is as simple as was possible to achieve the given objective of 
  serving static and dynamic content to various new and old clients,
  as well as allowing for the creation of static snapshots of parts of
  the served document tree for off-line distribution.

* It's very adaptable, since I never knew what features would be
  needed next.

* It's as portable as possible, requiring only few changes to make it
  run in other implementations capable of supporting serious HTTP
  serving.

* It's under a very unrestrictive and clear licence, mostly X-style.
  There exist a number of HTTP servers for CL already, but most of
  them are under licences which are quite vague, and wouldn't stand up
  in court, thus putting any user under too much of a risk.  Since
  CLASH has been explicitly put in the public domain, this shouldn't
  be a problem, minus the ever present danger of software patents.

  For information on the conditions of use and copying that come with
  CLASH, see the file COPYING included in the distribution.

If CLASH suits your needs, use it as you wish.  If it doesn't, take a
look at the following packages, which might suit your needs better
(and which are quite impressive in their feature sets):

* CL-HTTP

  This is a very impressive and comprehensive implementation of HTTP
  (including HTTP/1.1), HTML and XML generation, advanced user
  interfacing via the WWW, proxying, mirroring, spiders and robots and 
  many other things.  It runs in nearly all current implementations.
  See http://www.ai.mit.edu/projects/iiip/doc/cl-http/home-page.htm

* Closure

  This is the counter-part of CL-HTTP, in that it is a GPLed web
  browser.  It's still being developed, and although it currently runs 
  only under Franz' Allegro CL (for Linux/Unix), there are plans of
  porting this further.
  See http://www.uni-karlsruhe.de/~unk6/closure/

For further information on the conditions of use and copying that come
with CLASH, see the file COPYING included in the distribution.

For information on building and using CLASH, see doc/README.
Description
The Common Lisp Adaptable Simple HTTP server
Readme 461 KiB
Languages
Common Lisp 94.5%
NewLisp 4.2%
Emacs Lisp 1.1%
Shell 0.2%