The Snap framework consists of the following: • snap-core, a generic Haskell web server API. • snap-server, a fast HTTP server that implements the snap-core interface. • Heist, an HTML-based templating system for generating pages that allows you to bind Haskell functionality to HTML tags for a clean separation of view and backend code, much like
Lift's snippets. Heist is self-contained and can be used independently. • Snaplets, a high-level system for building modular web applications. • Built-in snaplets for templating, session management, and authentication. • Third party snaplets for features including file uploads, database connectivity (
PostgreSQL,
MongoDB, etc.), generation of
JavaScript from Haskell code, and more. • The Snap
monad for stateful access to HTTP requests and responses. Snap runs on both
Windows NT and
Unix-like platforms. Snap uses the Iteratee
input/output (I/O) model, As of version 1.0, its I/O is implemented with io-streams. ==Usage==