cl-modlisp Documentation

Overview

cl-modlisp provides the Lisp side of the interface to Marc Battyani's mod_lisp apache module (http://www.fractalconcept.com).

Features

Prerequisites

Supported Platforms

Quickstart

Process Models

There are two process models

Usage

The demo.lisp file for examples of using cl-modlisp.

  • Overview
    cl-modlisp is a multi-threaded handler for HTTP requests forwarded by Marc Battyani's (http://www.fractalconcept.com) mod_lisp Apache module.
  • Design Goals
    cl-modlisp is designed as a thin layer to dispatch a mod_lisp request with multi-platform compatibility. Currently, cl-modlisp supports SBCL [multithreaded], CMUCL, AllegroCL, and Lispworks.
  • Dispatch model
    Extremely simple: All requests are forwarded to a single processor that is passed as a parameter to cl-modlisp's start-up function.
  • Configuration
    All configuration is set by passing keyword arguments to modlisp-start
  • Processor function
    This function receives an argument of the 'command' alist and any other arguments passed to modlisp-start as the :processor-args. The 'command' alist is an associative list of keys and values received from modlisp. No preprocessing is done except that keys are converted from strings to keywords forced to the default implementation case.
  • Default Processor
    The default processor is a simple demo command processor not intended for end-user.
  • URI Processing
    None. The raw URL is the value of the :url key in the command alist.
  • Responses
    Responses are written to modlisp:*modlisp-socket*. The raw HTTP/1.1 header needs to be generated by the application.
  • Utility functions
    A few utility functions are provided
  • Known issues