Some CSS modifications
[mmondor.git] / mmsoftware / cl / server / README
1The Crow-HTTPd Web Server
4This server is written in Common Lisp and is mostly developed
5interactively. It targets POSIX systems, using the ECL implementation
6of Common Lisp.
8A few strong points of Crow-HTTPd are:
9(note that points with + denote work in progress)
11+ Implements most of HTTP/1.1
12- Acceptabe performance
13- Permits interactive and incremental application development
14- Allows application development in a language as high-level as a
15 scripting language yet also as low level as C.
16- Few dependencies (includes everything necessary other than ECL)
17- Ability to embed HTML as S-expressions directly into Lisp code
18 in an elegant way (the HTML to text expansion is done at
19 compile-time, with Lisp expressions and loops evaluated at runtime)
7579bd68 20- Can be compiled to an OS-friendly executable easily
9a3baff4 21- Can embed binary files as part of the latter executable,
22 which can make deployment easier and permits to target systems that
23 don't have a general-purpose file-system
24- Supports static, static+dynamic or dynamic only virtual-hosts
25- Internally compiles to C, which helps portability and provides
26 better integration with POSIX systems and other C libraries
27- Written in a less error-prone language than C (especially string
28 handling). The end result is C but using libraries to help abstract
29 and keep safety.
30- When started in standalone-mode, supports three modes: non-interactive,
31 interactive-ecl-repl, interactive-swank-server
32- Uses threads so CPU-bound applications are possible. Attempts
33 to minimize thread management overhead.
34+ Configuration may optionally be embedded as part of the executable
35 (in which case it doesn't allow loading one), or loaded at runtime
36- A gmake/gnu-make make file allows to easily build both .fas
37 modules for interactive use and the crow-httpd executable, using
38 ECL as the toolchain
39- Provides user-code with simple abstractions such as WITH-HTTP-LET
40 to bind local variables to GET, POST, Cookie, Header variables
7579bd68 41