snap-core: Snap: A Haskell Web Framework (core interfaces and types)

[ bsd3, io-streams, library, snap, web ] [ Propose Tags ]

Snap is a simple and fast web development framework and server written in Haskell. For more information or to download the latest version, you can visit the Snap project website at http://snapframework.com/.

This library contains the core definitions and types for the Snap framework, including:

  1. Primitive types and functions for HTTP (requests, responses, cookies, post/query parameters, etc)

  2. A monad for programming web handlers called "Snap", which allows:

Quick start: The Snap monad and HTTP definitions are in Snap.Core.


[Skip to Readme]
Versions [faq] 0.1.1, 0.1.2, 0.2.1, 0.2.2, 0.2.3, 0.2.4, 0.2.5, 0.2.6, 0.2.7, 0.2.7.1, 0.2.8, 0.2.8.1, 0.2.9, 0.2.10, 0.2.11, 0.2.12, 0.2.13, 0.2.14, 0.2.15, 0.2.15.1, 0.2.16, 0.3.0, 0.3.1, 0.3.1.1, 0.4.0, 0.4.0.1, 0.4.0.2, 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.1.4, 0.5.2, 0.5.3, 0.5.3.1, 0.5.4, 0.5.5, 0.6.0, 0.6.0.1, 0.7, 0.7.0.1, 0.8.0, 0.8.0.1, 0.8.1, 0.9.0, 0.9.2, 0.9.2.1, 0.9.2.2, 0.9.3, 0.9.3.1, 0.9.4.0, 0.9.4.1, 0.9.5.0, 0.9.6.0, 0.9.6.1, 0.9.6.2, 0.9.6.3, 0.9.6.4, 0.9.7.0, 0.9.7.2, 0.9.8.0, 1.0.0.0, 1.0.1.0, 1.0.1.1, 1.0.2.0, 1.0.2.1, 1.0.3.0, 1.0.3.1, 1.0.3.2
Dependencies attoparsec (>=0.12 && <0.14), base (==4.*), bytestring (>=0.9 && <0.11), bytestring-builder (>=0.10.4 && <0.11), case-insensitive (>=1.1 && <1.3), containers (>=0.3 && <1.0), directory (==1.*), filepath (>=1.1 && <2.0), HUnit (>=1.2 && <2), io-streams (==1.3.*), lifted-base (>=0.1 && <0.3), monad-control (==1.0.*), mtl (>=2.0 && <2.3), old-locale (==1.*), random (==1.*), readable (>=0.1 && <0.4), regex-posix (>=0.95 && <1), text (>=0.11 && <1.3), time (>=1.0 && <1.7), time-locale-compat (==0.1.*), transformers (>=0.3 && <0.6), transformers-base (==0.4.*), unix-compat (>=0.3 && <0.5), unordered-containers (>=0.1.4.3 && <0.3), vector (>=0.6 && <0.12) [details]
License BSD-3-Clause
Author Snap Framework Authors (see CONTRIBUTORS)
Maintainer snap@snapframework.com
Category Web, Snap, IO-Streams
Home page http://snapframework.com/
Bug tracker https://github.com/snapframework/snap-core/issues
Source repo head: git clone git://github.com/snapframework/snap-core.git
Uploaded by DougBeardsley at Mon Aug 8 01:48:43 UTC 2016
Distributions Arch:1.0.3.2, Debian:1.0.3.2, Fedora:1.0.3.2, FreeBSD:0.9.7.2, LTSHaskell:1.0.3.2, NixOS:1.0.3.2, Stackage:1.0.3.2
Downloads 68084 total (1095 in the last 30 days)
Rating 2.5 (votes: 3) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Flags

NameDescriptionDefaultType
portable

Compile in cross-platform mode. No platform-specific code or optimizations such as C routines will be used.

DisabledAutomatic
debug

Enable debug logging code. With this flag, Snap will test the DEBUG environment variable to decide whether to do logging, and this introduces a tiny amount of overhead (a call into a function pointer) because the calls to debug cannot be inlined.

DisabledAutomatic

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

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for snap-core-1.0.0.0

[back to package description]

Snap Framework Core

Build Status

Snap is a web framework for Haskell. 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 the snap-core library, which contains:

  • primitive types and functions for HTTP (requests, responses, cookies, post/query parameters, etc).

  • a "Snap" monad interface for programming web handlers, which allows:

    • stateful access to the HTTP request and response objects.

    • monadic failure (i.e. MonadPlus/Alternative instances) for declining to handle requests and chaining handlers together.

    • early termination of the computation if you know early what you want to return and want to prevent further monadic processing.

  • useful utilities for web handlers, like file serving and gzip/zlib compression.

Building snap-core

The snap-core library is built using Cabal and Hackage. Just run

cabal install

from the snap-core toplevel directory.

Building the Haddock Documentation

The haddock documentation can be built using the supplied haddock.sh shell script:

./haddock.sh

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

Building the testsuite

Snap aims for 100% test coverage, and we're trying hard to stick to that.

To build the test suite, configure with --enable-tests:

$ cabal configure --enable-tests
$ cabal build

From here you can invoke the testsuite by running:

$ ./runTestsAndCoverage.sh

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