Samiksha Jaiswal (Editor)

Snap (web framework)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
Snap Team

Development status
  
Active

Initial release
  
May 2010

Written in
  
Haskell

Original author(s)
  
Gregory Collins, Doug Beardsley

Stable release
  
1.0 / August 7, 2016 (2016-08-07)

Snap is a web development framework written in the Haskell programming language. It is used by Silk, JanRain, Racemetric, www.lpaste.net, SooStone Inc, and Group Commerce. Snap is also used as a lightweight, standalone Haskell server. The popular static site generator Hakyll uses Snap for its preview mode.

Contents

Overview

The Snap framework comprises:

  • 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 completely 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 such as 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 and *nix platforms. Snap uses the Iteratee I/O model, As of version 1.0, its i/o is implemented with io-streams.

    Other Haskell web frameworks

  • Yesod (web framework)
  • Happstack
  • Scotty web framework
  • Spock web framework
  • MFlow web framework
  • References

    Snap (web framework) Wikipedia