Snap (web framework) explained
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
Notes and References
- Web site: Snap: A Haskell Web Framework: About. The Snap Framework. Team. snapframework.com.
- Web site: snapframework/snap . github.com.
- Collins. Gregory. Beardsley. Doug. Jan–Feb 2011. The Snap Framework: A Web Toolkit for Haskell. IEEE Internet Computing. 15 . 1. 84–87 . 10.1109/mic.2011.21.
- Book: Biscardi, Chris. Snap for Beginners. 2014. Gumroad.
- Web site: snap-core . www.hackage.org.
- Web site: snap-server . www.hackage.org.
- Web site: Snap 0.3 benchmarks with GHC 7.0.1 . www.snapframework.com . 2014-03-02.
- Web site: Snap: A Haskell Web Framework: Heist Tutorial. The Snap Framework. Team. snapframework.com.
- Web site: Snap: A Haskell Web Framework: Snaplet Directory. The Snap Framework. Team. snapframework.com.
- Web site: Snap.Core. hackage.haskell.org.
- Web site: InfoQ Interview: Gregory Collins on High Performance Web Apps with Snap and Haskell. Sep 12, 2011.
- Web site: FP Complete Case Study - Silk -- Structured Content Management. FP Complete . 2014-03-02.
- Web site: FP Complete Case Study - JanRain -- User Management System. FP Complete . 2014-03-02.
- Web site: Blog tutorial on Snap and PostgreSQL. JanRain . 2014-03-02.
- Web site: Haskell Snap App in Production . Luke Hoersten . 2014-03-02.
- Web site: New paste. www.lpaste.net.
- Web site: lpaste source code. Chris Done . 2014-03-02.
- Web site: Hakyll - Home. jaspervdj.be.
- Web site: scotty: Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp. Hackage.
- Web site: Spock: Another Haskell web framework for rapid development. Hackage.
- Web site: MFlow: stateful, RESTful web framework. Hackage.
- Web site: miso: A tasty Haskell front-end framework. Hackage.