Snap is a simple and fast web development framework and server written in
Haskell. For more information about Snap, read the README.SNAP.md
or visit
the Snap project website at http://www.snapframework.com/.
This is top-level project for the Snap Framework, which contains:
a library allowing Snap applications to recompile actions on the fly in development mode, with no performance loss in production mode.
a "snaplet" API allowing web applications to be build from composable pieces.
The command-line utility snap
for creating initial Snap applications used to
be a part of this package. As of version 1.0, the snap command-line utility is
no longer provided by this package. It is now provided by the package
snap-templates
.
After you clone the repository, change to the newly created snap directory and run
git submodule update --init --recursive
cabal build all
(You may want to look at pull.sh or pullLatestMaster.sh.) This updates all the Snap Framework dependencies to the correct version. The snap library is built using Cabal and Hackage.
A Nix shell is provided and can be entered using nix-shell
.
If using nix-direnv
, run the following:
echo 'use nix' > .envrc && direnv allow
The haddock documentation can either be built for snap using cabal haddock snap
, or for the git
submodules as well using cabal haddock-project
.
Build and run the test suite using cabal test all
.
Tutorial.lhs
which is in the project_template/tutorial/src
directory of the snap-templates
package.