![]()  | |
| Original author(s) | Gregory Collins, Doug Beardsley[1] | 
|---|---|
| Developer(s) | Snap Team | 
| Initial release | May 2010 | 
| Stable release | 1.1.3.0[2]
   / May 7, 2020  | 
| Repository | Snap Repository | 
| Written in | Haskell | 
| Operating system | Cross-platform | 
| Type | Web framework | 
| License | BSD License | 
| Website | snapframework | 
Snap is a web development framework written in the Haskell programming language.[3][4]
Overview
The Snap framework consists of the following:
- snap-core,[5] a generic Haskell web server API.
 - snap-server,[6] a fast[7] HTTP server that implements the snap-core interface.
 - Heist,[8] 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,[9] 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.[10]
 
Snap runs on both Windows NT and Unix-like platforms. Snap uses the Iteratee I/O model,[11] As of version 1.0, its i/o is implemented with io-streams.
Usage
Snap is used by Silk,[12] JanRain,[13][14] Racemetric,[15] www.lpaste.net,[16][17] SooStone Inc, and Group Commerce. Snap is also used as a lightweight, standalone Haskell server. The static site generator Hakyll uses Snap for its preview mode.[18]
Other Haskell web frameworks
- Yesod (web framework)
 - Scotty[19]
 - Spock[20]
 - MFlow[21]
 - Miso[22]
 
References
- ↑ Team, The Snap Framework. "Snap: A Haskell Web Framework: About". snapframework.com.
 - ↑ Team, The Snap Framework. "Snap: A Haskell Web Framework: Github: Release: Snap 1.1.3.0". github.com.
 - ↑ Collins, Gregory; Beardsley, Doug (Jan–Feb 2011). "The Snap Framework: A Web Toolkit for Haskell" (PDF). IEEE Internet Computing. 15 (1): 84–87. doi:10.1109/mic.2011.21.
 - ↑ Biscardi, Chris (2014). Snap for Beginners. Gumroad.
 - ↑ "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.
 - ↑ Team, The Snap Framework. "Snap: A Haskell Web Framework: Heist Tutorial". snapframework.com.
 - ↑ Team, The Snap Framework. "Snap: A Haskell Web Framework: Snaplet Directory". snapframework.com.
 - ↑ "Snap.Core". hackage.haskell.org.
 - ↑ "InfoQ Interview: Gregory Collins on High Performance Web Apps with Snap and Haskell". Sep 12, 2011.
 - ↑ "FP Complete Case Study - Silk -- Structured Content Management" (PDF). FP Complete. Retrieved 2014-03-02.
 - ↑ "FP Complete Case Study - JanRain -- User Management System" (PDF). 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.
 - ↑ "New paste". www.lpaste.net.
 - ↑ "lpaste source code". Chris Done. Retrieved 2014-03-02.
 - ↑ "Hakyll - Home". jaspervdj.be.
 - ↑ "scotty: Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp". Hackage.
 - ↑ "Spock: Another Haskell web framework for rapid development". Hackage.
 - ↑ "MFlow: stateful, RESTful web framework". Hackage.
 - ↑ "miso: A tasty Haskell front-end framework". Hackage.
 
External links
    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.
