snap-core-0.5.2: Snap: A Haskell Web Framework (Core)

# snap-core-0.5.2: Snap: A Haskell Web Framework (Core)

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. Type aliases and helper functions for Iteratee I/O
3. 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

Quick start: The `Snap` monad and HTTP definitions are in Snap.Types, some iteratee utilities are in Snap.Iteratee.

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.

Modules

- Snap
  - Internal
    - Snap.Internal.Debug
    - Http
      - Snap.Internal.Http.Types
    - Iteratee
      - Snap.Internal.Iteratee.Debug
    - Snap.Internal.Parsing
  - Snap.Iteratee
  - Snap.Types
  - Util
    - Snap.Util.FileServe
    - Snap.Util.FileUploads
    - Snap.Util.GZip
    - Snap.Util.Readable