You are here: UUCS>WebFunctions Web>WebHome (27 Nov 2007, UnknownUser)EditAttach

Project Overview

WebFunctions is a domain specific embedded language for web authoring, implemented in Haskell. The functionality of the WebFunctions framework was inspired by Apple's WebObjects. We claim it is easier to use since the Haskell type checker makes a lot of extra checks, that are absent from the Apple framework. Unfortunately we do not yet have all the nice tooling and special editors, but we are working on this.

Some important features of the WebFunctions system are: loose coupling between model, view and controller code, transparent handling of session and application state, the ability to run the whole web application inside a single process, type safe HTML generation and database interaction and abstracted database interaction.

For HTML generation, WASH/HTML is used. HaskellDB is used for database interaction.

An important difference from some other Haskell software in the same field is that a WebFunctions application comes with a built-in web server. Because of this, no CGI is used to handle the request and the state is persistent at the server. This also means no serialization/deserialization of the state is needed.

Furthermore, a database abstraction mechanism is implemented that provides the programmer with concurrency support, caching, and transaction management per session.

Using WebFunctions

You can download WebFunctions from the Releases topic. Source code is available from SourceCode.

You need a new version of the Glasgow Haskell Compiler (6.4 or newer). Cd into the src directory and do make. This will compile an example web application you can start by doing ./example. See Documentation for more details.

WebFunctions is based upon

WebFunctions reuses


Topic revision: r39 - 27 Nov 2007, UnknownUser

This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding UUCS? Send feedback