snap: Top-level package for the Snap Web Framework

[ bsd3, library, snap, web ] [ Propose Tags ] [ Report a vulnerability ]

This is the top-level package for the official Snap Framework libraries. It includes:

  • The Snaplets API

  • The "snap" executable program for generating starter projects

  • Snaplets for sessions, authentication, and templates

To get started, issue the following sequence of commands:

$ cabal install snap
$ mkdir myproject
$ cd myproject
$ snap init

If you have trouble or any questions, see our FAQ page (http://snapframework.com/faq) or the documentation (http://snapframework.com/docs).


[Skip to Readme]

Flags

Automatic Flags
NameDescriptionDefault
old-baseDisabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.3.0, 0.3.0.1, 0.3.1, 0.4, 0.4.1, 0.4.2, 0.4.3, 0.5.0, 0.5.1, 0.5.1.1, 0.5.1.2, 0.5.1.3, 0.5.2, 0.5.3, 0.5.3.1, 0.5.4, 0.5.5, 0.5.5.1, 0.6.0, 0.6.0.1, 0.6.0.2, 0.7, 0.8.0, 0.8.0.1, 0.8.0.2, 0.8.1, 0.9.0, 0.9.0.1, 0.9.1, 0.9.1.1, 0.9.2, 0.9.2.1, 0.9.2.2, 0.10.0, 0.10.0.1, 0.11.0, 0.11.1, 0.11.2, 0.11.2.1, 0.11.2.2, 0.11.3, 0.11.3.1, 0.12.0, 0.12.1, 0.13.0, 0.13.0.1, 0.13.0.2, 0.13.0.3, 0.13.0.4, 0.13.1, 0.13.1.1, 0.13.1.2, 0.13.2.0, 0.13.2.1, 0.13.2.2, 0.13.2.3, 0.13.2.4, 0.13.2.5, 0.13.2.6, 0.13.2.7, 0.13.2.8, 0.13.2.9, 0.13.3, 0.13.3.1, 0.13.3.2, 0.14.0, 0.14.0.1, 0.14.0.2, 0.14.0.3, 0.14.0.4, 0.14.0.5, 0.14.0.6, 0.14.0.7, 1.0.0.0, 1.0.0.1, 1.0.0.2, 1.1.0.0, 1.1.1.0, 1.1.2.0, 1.1.3.0, 1.1.3.1, 1.1.3.2, 1.1.3.3
Dependencies aeson (>=0.6 && <0.7), attoparsec (>=0.10 && <0.11), base (>=4 && <5), bytestring (>=0.9.1 && <0.11), cereal (>=0.3 && <0.4), clientsession (>=0.8 && <0.10), comonad (>=1.1 && <3.1), configurator (>=0.1 && <0.3), containers (>=0.3 && <0.6), directory (>=1.0 && <1.3), directory-tree (>=0.11 && <0.12), dlist (>=0.5 && <0.6), errors (>=1.4 && <1.5), filepath (>=1.1 && <1.4), hashable (>=1.1 && <1.2), heist (>=0.11 && <0.12), lens (>=3.7.6 && <3.10), logict (>=0.4.2 && <0.7), MonadCatchIO-transformers (>=0.2 && <0.4), mtl (>2.0 && <2.2), mwc-random (>=0.8 && <0.13), old-time (>=1.0 && <1.2), pwstore-fast (>=2.2 && <2.4), regex-posix (>=0.95 && <1), snap-core (>=0.9 && <0.10), snap-server (>=0.9 && <0.10), stm (>=2.2 && <2.5), syb (>=0.1 && <0.5), template-haskell (>=2.2 && <2.9), text (>=0.11 && <0.12), time (>=1.1 && <1.5), transformers (>=0.2 && <0.4), unordered-containers (>=0.1.4 && <0.3), vector (>=0.7.1 && <0.11), vector-algorithms (>=0.4 && <0.6), xmlhtml (>=0.1 && <0.3) [details]
License BSD-3-Clause
Author Ozgun Ataman, Doug Beardsley, Gregory Collins, Carl Howells, Chris Smith
Maintainer snap@snapframework.com
Category Web, Snap
Home page http://snapframework.com/
Source repo head: git clone https://github.com/snapframework/snap.git
Uploaded by DougBeardsley at 2013-05-01T20:39:22Z
Distributions Debian:1.1.3.0, FreeBSD:0.14.0.6, LTSHaskell:1.1.3.3, NixOS:1.1.3.3, Stackage:1.1.3.3
Reverse Dependencies 66 direct, 0 indirect [details]
Executables snap
Downloads 99939 total (466 in the last 30 days)
Rating 2.5 (votes: 6) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for snap-0.11.3

[back to package description]

Snap Framework

Snap is a web framework for Haskell, based on iteratee I/O (as popularized by Oleg Kiselyov). For more information about Snap, read the README.SNAP.md or visit the Snap project website at http://www.snapframework.com/.

Library contents

This is top-level project for the Snap Framework, which contains:

  • a command-line utility for creating initial Snap applications

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

Building snap

The snap tool and library are built using Cabal and Hackage. Just run

cabal install

from the snap toplevel directory.

Building the Haddock Documentation

The haddock documentation can be built using 'cabal haddock'.

The docs get put in dist/doc/html/.

Building the testsuite

To build the test suite, cd into the test/ directory and run

$ cabal configure
$ cabal build

From here you can invoke the testsuite by running:

$ ./runTestsAndCoverage.sh

The testsuite generates an hpc test coverage report in test/dist/hpc.

Roadmap to Understanding Snaplets

  1. Read Tutorial.lhs which is in project_template/tutorial/src.
  2. Generate and read the haddock docs.
  3. The test code has the nice property that it actually functions as a pretty good example app and covers a lot of the use cases.
  4. If you're interested in the implementation, read design.md.