Snap (web framework)
Jump to navigation
Jump to search
| Snap | |
|---|---|
| Error creating thumbnail: File missing | |
| Original authors | Gregory Collins, Doug Beardsley[1] |
| Developer | Snap Team |
| Initial release | May 2010 |
| Stable release | 1.1.3.2[2]
/ July 19, 2023 |
| Repository | github |
| Written in | Haskell |
| Engine | |
| Operating system | Cross-platform: Unix, Unix-like, macOS; Windows NT |
| Platform | IA-32, x86-64 |
| Available in | English |
| Type | Web framework |
| License | BSD |
| Website | snapframework |
Snap is a web framework for developing web applications written in the functional programming language Haskell.[3][4]
Overview
[edit | edit source]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 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 input/output (I/O) model,[11] As of version 1.0, its I/O is implemented with io-streams.
Usage
[edit | edit source]Snap is used by Silk,[12] JanRain,[13][14] Racemetric,[15] Lee Paste's Financial Blog,[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
[edit | edit source]- Yesod (web framework)
- Servant (web framework)
- Scotty[19]
- Spock[20]
- MFlow[21]
- Miso[22]
References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).