What is HSP?
Haskell Server Pages (HSP) is an extension of vanilla Haskell, targetted at the task of writing dynamic server-side web pages. Features include:
- Embedded XML syntax
- A (low-to-mid-level) programming model for writing dynamic web pages
- Functions for using cgi to show HSP pages
The first version of HSP was presented by Eric Meijer and Danny van Velzen at the Haskell Workshop 2000. Their work was never fully implemented however. This system is at the same time an implementation, improvement and extension of their original system.
- version 0.2, May 2005:
- First public release.
- version 0.4 March 2008:
Project HSP v 0.4 consists of a set of packages with related functionality:
Haskell Source with XML (HSX, hsx) is a package that contains everything pertaining to literal XML syntax. In particular it contains a) the trhsx preprocessor that translates hsx source files into vanilla Haskell, and b) modules defining the functions that are injected by trhsx. It also nominally contains generic combinators for creating values of the same types as the literal XML syntax, though these modules are not present in 0.4.
The core HSP package defines the datatypes and functions for writing server-side dynamic web pages. Also defines how to use the HJScript functionality in HSP pages, to allow for client-side dynamics as well.
Run HSP pages as CGI scripts.
(Note: Earlier versions of HSP have come with a server application, hspr, providing the runtime environment for HSP. As of 0.4, this server has been discontinued and should be considered deprecated.)
HSP is available from Hackage. It currently consists of several different packages.
- Package hsx
- Package hsp
- Package HJScript
- Package hsp-cgi
The development versions of the packages live in darcs repositories under http://code.haskell.org/HSP.
Installation and Usage
The packages are cabalized. Most of the packages can be configured, built and installed in the standard way.
There is a Google Group which you should join if you're interested in HSP. This is also the best place to ask any questions you might have.