snap-server: A fast, iteratee-based, epoll-enabled web server for the Snap Framework

[ 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/.

The Snap HTTP server is a high performance, epoll-enabled, iteratee-based web server library written in Haskell. Together with the snap-core library upon which it depends, it provides a clean and efficient Haskell programming interface to the HTTP protocol.


[Skip to Readme]

Flags

Automatic Flags
NameDescriptionDefault
portable

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

Disabled
openssl

Enable https support using the HsOpenSSL library.

Disabled

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.1.1, 0.1.2, 0.1.3, 0.1.4, 0.2.1, 0.2.2, 0.2.4, 0.2.5, 0.2.6, 0.2.7, 0.2.7.1, 0.2.7.2, 0.2.8, 0.2.8.1, 0.2.9, 0.2.10, 0.2.10.1, 0.2.10.2, 0.2.11, 0.2.12, 0.2.13, 0.2.13.1, 0.2.13.2, 0.2.13.3, 0.2.14, 0.2.14.1, 0.2.15, 0.2.15.1, 0.2.16, 0.2.16.1, 0.2.16.2, 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.8.1.1, 0.9.0, 0.9.2, 0.9.2.1, 0.9.2.2, 0.9.2.3, 0.9.2.4, 0.9.3, 0.9.3.1, 0.9.3.3, 0.9.3.4, 0.9.4.0, 0.9.4.1, 0.9.4.2, 0.9.4.3, 0.9.4.4, 0.9.4.5, 0.9.4.6, 0.9.5.0, 0.9.5.1, 1.0.0.0, 1.0.1.0, 1.0.1.1, 1.0.2.0, 1.0.2.1, 1.0.2.2, 1.0.3.0, 1.0.3.1, 1.0.3.2, 1.0.3.3, 1.1.0.0, 1.1.1.0, 1.1.1.1, 1.1.1.2, 1.1.2.0, 1.1.2.1
Dependencies attoparsec (>=0.10 && <0.11), attoparsec-enumerator (>=0.3 && <0.4), base (>=4 && <5), binary (>=0.5 && <0.7), blaze-builder (>=0.2.1.4 && <0.4), blaze-builder-enumerator (>=0.2.0 && <0.3), bytestring (>=0.9.1 && <0.11), case-insensitive (>=0.3 && <0.5), containers (>=0.3 && <0.6), directory-tree (>=0.10 && <0.11), enumerator (>=0.4.15 && <0.5), filepath (>=1.1 && <1.4), HsOpenSSL (>=0.10 && <0.11), MonadCatchIO-transformers (>=0.2.1 && <0.4), mtl (>=2 && <3), network (>=2.3 && <2.5), old-locale, snap-core (>=0.9.2 && <0.10), template-haskell (>=2.2 && <2.9), text (>=0.11 && <0.12), time (>=1.0 && <1.5), transformers (>=0.2 && <0.4), unix, unix-compat (>=0.2 && <0.5) [details]
License BSD-3-Clause
Author James Sanders, Gregory Collins, Doug Beardsley
Maintainer snap@snapframework.com
Category Web, Snap
Home page http://snapframework.com/
Source repo head: git clone git://github.com/snapframework/snap-server.git
Uploaded by GregoryCollins at 2012-09-20T19:23:02Z
Distributions Arch:1.1.2.1, Debian:1.1.1.2, Fedora:1.1.2.1, FreeBSD:0.9.5.1, LTSHaskell:1.1.2.1, NixOS:1.1.2.1, Stackage:1.1.2.1
Reverse Dependencies 19 direct, 166 indirect [details]
Downloads 133329 total (364 in the last 30 days)
Rating 2.5 (votes: 3) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for snap-server-0.9.2.3

[back to package description]

Snap Framework HTTP Server Library

This is the Snap Framework HTTP Server library. For more information about Snap, read the README.SNAP.md or visit the Snap project website at http://www.snapframework.com/.

The Snap HTTP server is a high performance, epoll-enabled, iteratee-based web server library written in Haskell. Together with the snap-core library upon which it depends, it provides a clean and efficient Haskell programming interface to the HTTP protocol. Higher-level facilities for building web applications (like user/session management, component interfaces, data modeling, etc.) are not yet implemented, so this release will mostly be of interest for those who:

  • need a fast and minimal HTTP API at roughly the same level of abstraction as Java servlets,

or

  • are interested in contributing to the Snap Framework project.

Building snap-server

Dependencies

To build the Snap HTTP server, you need to cabal install the snap-core library (which should have come with this package).

Optional dependencies

If you would like SSL support, snap-server requires the openssl library.

Building snap-server

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

cabal install

to install snap-server.

If you would like SSL support, pass the openssl flag to cabal install:

cabal install -fopenssl

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

The snap-server has a fairly comprehensive test suite. To build and run it, cd into the test/ directory and run

$ cabal configure            # for the stock backend, or..
$ cabal configure -fopenssl  # for the SSL backend

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