Snap (web framework)
||This article's use of external links may not follow Wikipedia's policies or guidelines. (March 2014)|
|Original author(s)||Gregory Collins, Doug Beardsley|
|Initial release||May 2010|
|Stable release||0.13 / September 9, 2013|
|Type||Web application framework|
Snap is a simple 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.
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.
Snap runs on *nix platforms; it has been tested on Linux and Mac OS X Snow Leopard. Windows support was added more recently, but is not as well-tested. Snap uses the Iteratee I/O model, As of version 1.0, its i/o is implemented with io-streams.
Other Haskell web frameworks
- Snap team
- Collins, Gregory; Beardsley, Doug (Jan./Feb. 2011). "The Snap Framework: A Web Toolkit for Haskell". IEEE Internet Computing 15 (1): 84–87.
- Biscardi, Chris (2014). Snap for Beginners. Gumroad.
- "FP Complete Case Study - Silk -- Structured Content Management". FP Complete. Retrieved 2014-03-02.
- "FP Complete Case Study - JanRain -- User Management System". FP Complete. Retrieved 2014-03-02.
- "Blog tutorial on Snap and PostgreSQL". JanRain. Retrieved 2014-03-02.
- "Haskell Snap App in Production". Luke Hoersten. Retrieved 2014-03-02.
- "lpaste source code". Chris Done. Retrieved 2014-03-02.
- "snap-core". www.hackage.org.
- "snap-server". www.hackage.org.
- "Snap 0.3 benchmarks with GHC 7.0.1". www.snapframework.com. Retrieved 2014-03-02.
- "InfoQ Interview: Gregory Collins on High Performance Web Apps with Snap and Haskell". Sept. 12, 2011.