The snap-core package
This is the first developer prerelease of the Snap framework. 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:
Primitive types and functions for HTTP (requests, responses, cookies, post/query parameters, etc)
Type aliases and helper functions for Iteratee I/O
A monad for programming web handlers called "Snap", inspired by happstack's (http://happstack.com/index.html), 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
Higher-level facilities for building web applications (like user/session management, component interfaces, data modeling, etc.) are planned but 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.
[Skip to Readme]
Compile in cross-platform mode. No platform-specific code or optimizations such as C routines will be used.
Disable any debug logging code. Without 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
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
For package maintainers and hackage trustees