Snap is a
web development framework written in the
Haskell
Haskell () is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation. Designed for teaching, research and industrial applications, Haskell has pioneered a number of programming lan ...
programming language.
Overview
The Snap framework comprises:
* snap-core, a generic Haskell web server API.
* snap-server, a fast HTTP server that implements the snap-core interface.
* Heist, 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
Lift or LIFT may refer to:
Physical devices
* Elevator, or lift, a device used for raising and lowering people or goods
** Paternoster lift, a type of lift using a continuous chain of cars which do not stop
** Patient lift, or Hoyer lift, mobil ...
's snippets. Heist is completely self-contained and can be used independently.
* Snaplets, a high-level system for building modular web applications.
* Built-in snaplets for templating, session management, and authentication.
* Third party snaplets for features such as file uploads, database connectivity (
PostgreSQL,
MongoDB
MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc. and licensed under the Ser ...
, etc.), generation of
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, of ...
from Haskell code, and more.
* The Snap
monad
Monad may refer to:
Philosophy
* Monad (philosophy), a term meaning "unit"
**Monism, the concept of "one essence" in the metaphysical and theological theory
** Monad (Gnosticism), the most primal aspect of God in Gnosticism
* ''Great Monad'', a ...
for stateful access to HTTP requests and responses.
Snap runs on both Windows NT and Unix-like platforms. Snap uses th
IterateeI/O model, As of version 1.0, its i/o is implemented wit
io-streams
Usage
It is used by Silk, JanRain, Racemetric, www.lpaste.net, 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.
Other Haskell web frameworks
*
Yesod (web framework)
Yesod (; he, יְסוֺד, "Foundation") is a free and open-source web framework based on Haskell for productive development of type-safe, REST model based (where URLs identify resources, and HTTP methods identify transitions), high performan ...
* Scotty
* Spock
* MFlow
* Miso
References
External links
Snap framework
{{Web frameworks
Haskell software
Free software programmed in Haskell
Web frameworks
Software using the BSD license