Installing Snap

Snap is written in the Haskell programming language, and requires the GHC Haskell compiler.

The easiest way to get Snap is with Haskell's Cabal package manager. If you already have Cabal set up, then getting Snap should be as simple as running two commands:

$ cabal update
$ cabal install snap snap-templates
$ mkdir foo; cd foo; snap init

If you don't have GHC and cabal installed, the easiest way to get them is with the Haskell Platform binary installer.

After Snap is installed, check out the quick start for instructions on getting your project started.

Buildbot

We have set up continuous integration to track the progress of our development.

Package Status
snap
snap-server
snap-core
io-streams-haproxy
heist
xmlhtml

Snap Packages

Found a bug in Snap? Please visit our issue tracker.

Snap is made up of a collection of separate packages:

snap-core
A simple web server API containing core type definitions (Snap monad, HTTP types, etc) and utilities for web handlers.
[ hackage | github | test coverage report ]
snap-server
A web server based on io-streams, which runs Snap web handlers.
[ hackage | github | test coverage report ]
snap
Umbrella project pulling together Snap's component libraries into a coherent framework.
[ hackage | github ]
snap-templates
A package containing a project generator and a few simple project templates.
[ hackage | github ]
heist
An HTML-based templating engine, allowing Haskell functions to be bound to tags.
[ hackage | github ]
xmlhtml
A hybrid XML/HTML5 parsing and rendering library written specifically for Heist.
[ hackage | github ]
snap-website
The source code for this website is a small example of Snap in action.
[ github ]