Hubbry Logo
search button
Sign in
Snap (web framework)
Snap (web framework)
Comunity Hub
History
arrow-down
starMore
arrow-down
bob

Bob

Have a question related to this hub?

bob

Alice

Got something to say related to this hub?
Share it here.

#general is a chat channel to discuss anything related to the hub.
Hubbry Logo
search button
Sign in
Snap (web framework)
Community hub for the Wikipedia article
logoWikipedian hub
Welcome to the community hub built on top of the Snap (web framework) Wikipedia article. Here, you can discuss, collect, and organize anything related to Snap (web framework). The purpose of the hub is to...
Add your contribution
Snap (web framework)
Snap
Original author(s)Gregory Collins, Doug Beardsley[1]
Developer(s)Snap Team
Initial releaseMay 2010; 15 years ago (2010-05)
Stable release
1.1.3.2[2] / July 19, 2023; 2 years ago (2023-07-19)
Repositorygithub.com/snapframework
Written inHaskell
Operating systemCross-platform: Unix, Unix-like, macOS; Windows NT
PlatformIA-32, x86-64
Available inEnglish
TypeWeb framework
LicenseBSD
Websitesnapframework.com

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]

References

[edit]
  1. ^ Snap Framework Team. "Snap: A Haskell Web Framework: About". Snap Framework.com.
  2. ^ "snapframework/snap". GitHub.com.
  3. ^ Collins, Gregory; Beardsley, Doug (January–February 2011). "The Snap Framework: A Web Toolkit for Haskell" (PDF). IEEE Internet Computing. 15 (1): 84–87. doi:10.1109/mic.2011.21.
  4. ^ Biscardi, Chris (2014). Snap for Beginners. Gumroad.
  5. ^ "snap-core". Hackage.org.
  6. ^ "snap-server". Hackage.org.
  7. ^ "Snap 0.3 benchmarks with GHC 7.0.1". Snap Framework.com. Retrieved 2014-03-02.
  8. ^ Snap Framework Team. "Snap: A Haskell Web Framework: Heist Tutorial". Snap Framework.com.
  9. ^ Snap Framework Team. "Snap: A Haskell Web Framework: Snaplet Directory". Snap Framework.com.
  10. ^ "Snap.Core". Hackage.org.
  11. ^ "InfoQ Interview: Gregory Collins on High Performance Web Apps with Snap and Haskell". Sep 12, 2011.
  12. ^ "FP Complete Case Study – Silk – Structured Content Management" (PDF). FP Complete. Retrieved 2014-03-02.
  13. ^ "FP Complete Case Study – JanRain – User Management System" (PDF). FP Complete. Retrieved 2014-03-02.
  14. ^ "Blog tutorial on Snap and PostgreSQL". JanRain. Retrieved 2014-03-02.
  15. ^ Hoersten, Luke. "Haskell Snap App in Production". Retrieved 2014-03-02.
  16. ^ "Lee Paste". Lee Paste's Financial Blog.
  17. ^ Done, Chris. "lpaste source code". GitHub. Retrieved 2014-03-02.
  18. ^ Van der Jeugt, Jasper. "Hakyll". JasperVdJ.be. Retrieved 2024-11-09.
  19. ^ "scotty: Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp". Hackage.org.
  20. ^ "Spock: Another Haskell web framework for rapid development". Hackage.org.
  21. ^ "MFlow: stateful, RESTful web framework". Hackage.org.
  22. ^ "miso: A tasty Haskell front-end framework". Hackage.org.
[edit]