HaskellWiki

Haskell | Wiki community | Recent changes
Random page | Special pages

 

Not logged in
Log in | Help

Request an account if you don't have one.

HSP

Categories: Web

Contents

1 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:

2 History

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.

3 HSP Packages

Project HSP v 0.4 consists of a set of packages with related functionality:

3.1 Package hsx

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.

3.2 Package hsp

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.

3.3 Package HJavaScript

This package defines an abstract syntax and (not-so-)pretty printer for a large subset of JavaScript, as Language.HJavaScript. However, a significant difference from JavaScript is that HJavaScript is typed, even on the abstract syntax level using GADTs. The subset of JavaScript that is supported is those parts that lend themself to typing (i.e. no prototyping of classes).

3.4 Package HJScript

HJScript is a DSL built on top of HJavaScript, for writing client-side dynamic web pages. The programming model is fairly low-level, resembling the actual JavaScript code quite a lot, but should be easy to extend with higher-level functionality. Notable is that HJScript supports the use of literal XML syntax for creating DOM ElementNodes. Also notable is that HJScript supports Ajax functionality.

HJScript and HJavaScript can be used independently of HSP, for creating JavaScript code.

3.5 Package hsp-cgi

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.)

4 Download

HSP is available from Hackage. It currently consists of several different packages.

The development versions of the packages live in darcs repositories under http://code.haskell.org/HSP.

5 Installation and Usage

The packages are cabalized. Most of the packages can be configured, built and installed in the standard way.

TBW.

6 Documentation

Currently the only existing in-depth documentation is Niklas' masters thesis [ps, pdf]

7 Mailing list

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.

Retrieved from "http://haskell.org/haskellwiki/HSP"

This page has been accessed 2,518 times. This page was last modified 16:46, 28 November 2008. Recent content is available under a simple permissive license.