Snap (web framework)

Short description: Web development framework in Haskell

Snap

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; 6 years ago (2020-05-07)

Repository| Snap Repository
Written in| Haskell
Operating system| Cross-platform
Type| Web framework
License| BSD License
Website| snapframework.com

Snap is a web development framework written in the Haskell programming language.[3][4]

## Contents

* 1 Overview
* 2 Usage
* 3 Other Haskell web frameworks
* 4 References
* 5 External links

## 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

1. ↑ Team, The Snap Framework. "Snap: A Haskell Web Framework: About". http://snapframework.com/about.
2. ↑ Team, The Snap Framework. "Snap: A Haskell Web Framework: Github: Release: Snap 1.1.3.0". https://github.com/snapframework/snap/releases/tag/1.1.3.0.
3. ↑ Collins, Gregory; Beardsley, Doug (Jan–Feb 2011). "The Snap Framework: A Web Toolkit for Haskell". IEEE Internet Computing 15 (1): 84–87. doi:10.1109/mic.2011.21. http://steve.vinoski.net/pdf/IC-Snap_Framework.pdf.
4. ↑ Biscardi, Chris (2014). Snap for Beginners. Gumroad. https://gumroad.com/l/qWMnO.
5. ↑ "snap-core". www.hackage.org. http://hackage.haskell.org/package/snap-core.
6. ↑ "snap-server". www.hackage.org. http://hackage.haskell.org/package/snap-server.
7. ↑ "Snap 0.3 benchmarks with GHC 7.0.1". www.snapframework.com. http://snapframework.com/blog/2010/11/17/snap-0.3-benchmarks.
8. ↑ Team, The Snap Framework. "Snap: A Haskell Web Framework: Heist Tutorial". http://snapframework.com/docs/tutorials/heist.
9. ↑ Team, The Snap Framework. "Snap: A Haskell Web Framework: Snaplet Directory". http://snapframework.com/snaplets.
10. ↑ "Snap.Core". http://hackage.haskell.org/package/snap-core-0.9.6.0/docs/Snap-Core.html#t:Snap.
11. ↑ "InfoQ Interview: Gregory Collins on High Performance Web Apps with Snap and Haskell". Sep 12, 2011. http://www.computer.org/portal/web/computingnow/content?g=53319&type=article&urlTitle=gregory-collins-on-high-performance-web-apps-with-snap-and-haskell.
12. ↑ "FP Complete Case Study - Silk -- Structured Content Management". FP Complete. https://www.fpcomplete.com/wp-content/uploads/2013/05/Silk case study.pdf.
13. ↑ "FP Complete Case Study - JanRain -- User Management System". FP Complete. https://www.fpcomplete.com/wp-content/uploads/2013/05/janrain case study.pdf.
14. ↑ "Blog tutorial on Snap and PostgreSQL". JanRain. http://janrain.com/blog/tutorial-building-a-sample-application-with-haskell-snap-postgresql-and-the-postgresql-simple-snaplet/.
15. ↑ "Haskell Snap App in Production". Luke Hoersten. http://blog.hoersten.co/post/76773146365/haskell-snap-app-in-production.
16. ↑ "New paste". http://www.lpaste.net/.
17. ↑ "lpaste source code". Chris Done. https://github.com/chrisdone/lpaste/blob/master/hpaste.cabal#L102.
18. ↑ "Hakyll - Home". http://jaspervdj.be/hakyll/.
19. ↑ "scotty: Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp". http://hackage.haskell.org/package/scotty.
20. ↑ "Spock: Another Haskell web framework for rapid development". http://hackage.haskell.org/package/Spock.
21. ↑ "MFlow: stateful, RESTful web framework". http://hackage.haskell.org/package/MFlow.
22. ↑ "miso: A tasty Haskell front-end framework". http://hackage.haskell.org/package/miso.

## External links

* v
* t
* e

Web frameworks

* Comparison

C++|

* CppCMS
* Wt

CLI|

* ASP.NET
* Core
* AJAX
* Dynamic Data
* MVC
* Razor
* Web Forms
* DNN
* BFC
* MonoRail
* OpenRasta
* Umbraco
* WebSharper

ColdFusion|

* CFWheels
* ColdBox Platform
* ColdSpring
* Fusebox
* Model-Glue

Common Lisp|

* Caveman2
* CL-HTTP
* Weblocks

Haskell|

* Yesod
* Snap

Java|

* AppFuse
* Flexive
* Grails
* GWT
* ICEfaces
* ItsNat
* JavaServer Faces
* JHipster
* Jspx
* JWt
* OpenXava
* Play
* Remote Application Platform
* RIFE
* Seam
* Sling
* Spring
* Stripes
* Struts
* Tapestry
* Vaadin
* Vert.x
* WebWork
* Wicket
* WaveMaker
* ZK

JavaScript|

* Angular/AngularJS
* Backbone.js
* Chaplin.js
* Closure
* Dojo Toolkit
* Ember.js
* Express.js
* Ext JS
* jQuery
* Knockout.js
* Meteor
* MooTools
* Node.js
* OpenUI5
* Prototype
* React
* Rico
* script.aculo.us
* Sencha Touch
* SproutCore
* Svelte
* Vue.js
* Wakanda

Perl|

* Catalyst
* Dancer
* Mason
* Maypole
* Mojolicious
* WebGUI

PHP|

* CakePHP
* CodeIgniter
* Drupal
* Fat-Free
* FuelPHP
* Flow
* Grav
* Gyroscope
* Horde
* Joomla
* Kohana
* Laravel
* Lithium
* Midgard
* MODX
* Nette
* Phalcon
* PHP-Fusion
* Pop PHP
* PRADO
* ProcessWire
* Qcodo
* Silex
* SilverStripe
* Symfony
* TYPO3
* WordPress
* XOOPS
* Yii
* Zend Framework

Python|

* BlueBream
* CherryPy
* Django
* Flask
* Grok
* Nevow
* Pyjs
* Pylons
* Pyramid
* Quixote
* TACTIC
* Tornado
* TurboGears
* web2py
* Webware
* Zope 2
* more...

Ruby|

* Camping
* Merb
* Padrino
* Ruby on Rails
* Sinatra

Scala|

* Lift
* Play
* Scalatra

Smalltalk|

* AIDA/Web
* Seaside

Other languages|

* Vibe.d (D)
* Application Express (PL/SQL)
* Grails (Groovy)
* Kepler (Lua)
* OpenACS (Tcl)
* Phoenix (Elixir)
* SproutCore (JavaScript-Ruby)
* Yaws (Erlang)

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Snap (web framework). Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:Snap_(web_framework)&oldid=731983"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template