Recent from talks
All channels
Be the first to start a discussion here.
Be the first to start a discussion here.
Be the first to start a discussion here.
Be the first to start a discussion here.
Welcome to the community hub built to collect knowledge and have discussions related to Snap (web framework).
Nothing was collected or created yet.
Snap (web framework)
View on Wikipediafrom Wikipedia
| Snap | |
|---|---|
| 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 |
| 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]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]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]- Yesod (web framework)
- Servant (web framework)
- Scotty[19]
- Spock[20]
- MFlow[21]
- Miso[22]
References
[edit]- ^ Snap Framework Team. "Snap: A Haskell Web Framework: About". Snap Framework.com.
- ^ "snapframework/snap". GitHub.com.
- ^ Collins, Gregory; Beardsley, Doug (January–February 2011). "The Snap Framework: A Web Toolkit for Haskell" (PDF). IEEE Internet Computing. 15 (1): 84–87. Bibcode:2011IIC....15a..84C. doi:10.1109/mic.2011.21.
- ^ Biscardi, Chris (2014). Snap for Beginners. Gumroad.
- ^ "snap-core". Hackage.org.
- ^ "snap-server". Hackage.org.
- ^ "Snap 0.3 benchmarks with GHC 7.0.1". Snap Framework.com. Retrieved 2014-03-02.
- ^ Snap Framework Team. "Snap: A Haskell Web Framework: Heist Tutorial". Snap Framework.com.
- ^ Snap Framework Team. "Snap: A Haskell Web Framework: Snaplet Directory". Snap Framework.com.
- ^ "Snap.Core". Hackage.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.
- ^ Hoersten, Luke. "Haskell Snap App in Production". Retrieved 2014-03-02.
- ^ "Lee Paste". Lee Paste's Financial Blog.
- ^ Done, Chris. "lpaste source code". GitHub. Retrieved 2014-03-02.
- ^ Van der Jeugt, Jasper. "Hakyll". JasperVdJ.be. Retrieved 2024-11-09.
- ^ "scotty: Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp". Hackage.org.
- ^ "Spock: Another Haskell web framework for rapid development". Hackage.org.
- ^ "MFlow: stateful, RESTful web framework". Hackage.org.
- ^ "miso: A tasty Haskell front-end framework". Hackage.org.
