Pierre R. Mai e1c4504ede This is the first checked-in completely working version. It contains
nearly all concepts and simple implementations thereof needed to get a
simple HTTP/0.9 "compliant" server working (there are some hacks
needed that we don't yet provide, since the correct things will be
added shortly, like complete HTTP/1.1 request parsing.  The hacks
needed are provided as part of the basic HTTP/0.9 server demo in
src/test/basic-demo.cl).

Further work is needed to clean up some things, Entity and Resource
handling needs to be implemented right and less "naive" (the current
implementations are just simple place-holders to get things up and
running).  Connections need to have knowledge of client identity
(passed from the driver, this is implementation-specific stuff).
Logging needs to be implemented (probably as server mixins).
Condition handling needs to generate better responses for HTTP/0.9,
and the division between condition handling and normal handling needs
to be documented/rethought.  Content generation is totally missing
currently and needs to be implemented.  If this is all in place, an
HTTP/1.0 conforming server should be possible, and after porting the
drivers to ACL and LW, we can make a first release.
1999-08-07 17:55:59 +00:00
1999-05-23 15:47:18 +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%