1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
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](http://www.openssl.org/) library.
## Building snap-server
The snap-server library is built using [Cabal](http://www.haskell.org/cabal/)
and [Hackage](http://hackage.haskell.org/packages/hackage.html). 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`.
|