Snap (web framework)

Last updated
Snap
Original author(s) Gregory Collins, Doug Beardsley [1]
Developer(s) Snap Team
Initial releaseMay 2010
Stable release
1.1.3.0 [2] / May 7, 2020;3 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

Overview

The Snap framework consists of the following:

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

Related Research Articles

<span class="mw-page-title-main">PostgreSQL</span> Free and open-source object relational database management system

PostgreSQL, also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. PostgreSQL features transactions with atomicity, consistency, isolation, durability (ACID) properties, automatically updatable views, materialized views, triggers, foreign keys, and stored procedures. It is supported on all major operating systems, including Linux, FreeBSD, OpenBSD, macOS, and Windows, and handles a range of workloads from single machines to data warehouses or web services with many concurrent users.

<span class="mw-page-title-main">FOSDEM</span> Annual event in Brussels centered on free and open source software development

Free and Open source Software Developers' European Meeting (FOSDEM) is a non-commercial, volunteer-organized European event centered on free and open-source software development. It is aimed at developers and anyone interested in the free and open-source software movement. It aims to enable developers to meet and to promote the awareness and use of free and open-source software.

<span class="mw-page-title-main">PL/pgSQL</span>

PL/pgSQL is a procedural programming language supported by the PostgreSQL ORDBMS. It closely resembles Oracle's PL/SQL language. Implemented by Jan Wieck, PL/pgSQL first appeared with PostgreSQL 6.4, released on October 30, 1998. Version 9 also implements some ISO SQL/PSM features, like overloading of SQL-invoked functions and procedures.

The following tables compare general and technical information for a number of relational database management systems. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

<span class="mw-page-title-main">LAMP (software bundle)</span> Acronym for a common web hosting solution

LAMP is an acronym denoting one of the most common software stacks for the web's most popular applications. Its generic software stack model has largely interchangeable components.

Core Data is an object graph and persistence framework provided by Apple in the macOS and iOS operating systems. It was introduced in Mac OS X 10.4 Tiger and iOS with iPhone SDK 3.0. It allows data organized by the relational entity–attribute model to be serialized into XML, binary, or SQLite stores. The data can be manipulated using higher level objects representing entities and their relationships. Core Data manages the serialized version, providing object lifecycle and object graph management, including persistence. Core Data interfaces directly with SQLite, insulating the developer from the underlying SQL.

Laminas Project is an open source, object-oriented web application framework implemented in PHP 7 and licensed under the New BSD License. The framework is basically a collection of professional PHP-based packages. The framework uses various packages by the use of Composer as part of its package dependency managers; some of them are PHPUnit for testing all packages, Travis CI for continuous Integration Services. Laminas provides to users a support of the model–view–controller (MVC) in combination with Front Controller solution. MVC implementation in Laminas has five main areas. The router and dispatcher functions to decide which controller to run based on data from URL, and controller functions in combination with the model and view to develop and create the final web page.

<span class="mw-page-title-main">Silverstripe CMS</span> Content management system

Silverstripe CMS is a free and open source content management system (CMS) and framework for creating and maintaining websites and web applications. It provides an out of the box web-based administration panel that enables users to make modifications to parts of the website, which includes a WYSIWYG website editor. The core of the software is Silverstripe Framework, a PHP Web application framework.

This is a comparison of notable web frameworks, software used to build and deploy web applications.

Web2py is an open-source web application framework written in the Python programming language. Web2py allows web developers to program dynamic web content using Python. Web2py is designed to help reduce tedious web development tasks, such as developing web forms from scratch, although a web developer may build a form from scratch if required.

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 language features such as type classes, which enable type-safe operator overloading, and monadic input/output (IO). It is named after logician Haskell Curry. Haskell's main implementation is the Glasgow Haskell Compiler (GHC).

<span class="mw-page-title-main">Opa (programming language)</span>

Opa is an open-source programming language for developing scalable web applications.

SQL:2011 or ISO/IEC 9075:2011 is the seventh revision of the ISO (1987) and ANSI (1986) standard for the SQL database query language. It was formally adopted in December 2011. The standard consists of 9 parts which are described in detail in SQL. The next version is SQL:2016.

<span class="mw-page-title-main">Yesod (web framework)</span>

Yesod is a web framework based on the programming language Haskell for productive development of type-safe, representational state transfer (REST) model based, high performance web applications, developed by Michael Snoyman, et al. It is free and open-source software released under an MIT License.

<span class="mw-page-title-main">Fat-Free Framework</span>

Fat-Free Framework is an open-source web framework distributed under the GNU General Public License and hosted by GitHub and SourceForge. The software seeks to combine a full featureset with a lightweight code base while being easy to learn, use and extend.

<span class="mw-page-title-main">Octopussy (software)</span> Log analysis software

Octopussy, also known as 8Pussy, is a free and open-source computer-software which monitors systems, by constantly analyzing the syslog data they generate and transmit to such a central Octopussy server. Therefore, software like Octopussy plays an important role in maintaining an information security management system within ISO/IEC 27001-compliant environments.

Servant is a web framework based on the programming language Haskell, with an emphasis on data type safety. It is free and open-source software released under a BSD 3-clause license.

References

  1. Team, The Snap Framework. "Snap: A Haskell Web Framework: About". snapframework.com.
  2. Team, The Snap Framework. "Snap: A Haskell Web Framework: Github: Release: Snap 1.1.3.0". github.com.
  3. Collins, Gregory; Beardsley, Doug (Jan–Feb 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". www.hackage.org.
  6. "snap-server". www.hackage.org.
  7. "Snap 0.3 benchmarks with GHC 7.0.1". www.snapframework.com. Retrieved 2014-03-02.
  8. Team, The Snap Framework. "Snap: A Haskell Web Framework: Heist Tutorial". snapframework.com.
  9. Team, The Snap Framework. "Snap: A Haskell Web Framework: Snaplet Directory". snapframework.com.
  10. "Snap.Core". hackage.haskell.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. "Haskell Snap App in Production". Luke Hoersten. Retrieved 2014-03-02.
  16. "New paste". www.lpaste.net.
  17. "lpaste source code". Chris Done. Retrieved 2014-03-02.
  18. "Hakyll - Home". jaspervdj.be.
  19. "scotty: Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp". Hackage.
  20. "Spock: Another Haskell web framework for rapid development". Hackage.
  21. "MFlow: stateful, RESTful web framework". Hackage.
  22. "miso: A tasty Haskell front-end framework". Hackage.