Snap (web framework)

Last updated
Snap
Original author(s) Gregory Collins, Doug Beardsley [1]
Developer(s) Snap Team
Initial releaseMay 2010;14 years ago (2010-05)
Stable release
1.1.3.2 [2] / July 19, 2023;16 months ago (2023-07-19)
Repository github.com/snapframework
Written in Haskell
Operating system Cross-platform: Unix, Unix-like, macOS; Windows NT
Platform IA-32, x86-64
Available inEnglish
Type Web framework
License BSD
Website snapframework.com

Snap is a web framework for developing web applications written in the functional programming language Haskell. [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 input/output (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] 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

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 Windows, Linux, macOS, FreeBSD, and OpenBSD, and handles a range of workloads from single machines to data warehouses, data lakes, or web services with many concurrent users.

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">Django (web framework)</span> Python web framework

Django is a free and open-source, Python-based web framework that runs on a web server. It follows the model–template–views (MTV) architectural pattern. It is maintained by the Django Software Foundation (DSF), an independent organization established in the US as a 501(c)(3) non-profit.

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.

PostBooks is a proprietary accounting and enterprise resource planning business system geared toward small to medium-sized businesses. It used to be released under an open source CPAL license on GitHub, but was made non-free in June 2019. Postbooks was based on the commercially licensed xTuple ERP system created by xTuple, a private software company based in Norfolk, Virginia (VA), United States.

Tornado is a scalable, non-blocking web server and web application framework written in Python. It was developed for use by FriendFeed; the company was acquired by Facebook in 2009 and Tornado was open-sourced soon after.

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

Opa is a programming language for developing scalable web applications. It is free and open-source software released under a GNU Affero General Public License (AGPLv3), and an MIT License.

<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.

Percona is an American company based in Durham, North Carolina and the developer of a number of open source software projects for MySQL, MariaDB, PostgreSQL, MongoDB and RocksDB users. The company’s revenue of around $25 million a year is derived from support, consultancy and managed services of database systems.

<span class="mw-page-title-main">RocksDB</span> Embedded key-value database

RocksDB is a high performance embedded database for key-value data. It is a fork of Google's LevelDB optimized to exploit multi-core processors (CPUs), and make efficient use of fast storage, such as solid-state drives (SSD), for input/output (I/O) bound workloads. It is based on a log-structured merge-tree data structure. It is written in C++ and provides official language bindings for C++, C, and Java. Many third-party language bindings exist. RocksDB is free and open-source software, released originally under a BSD 3-clause license. However, in July 2017 the project was migrated to a dual license of both Apache 2.0 and GPLv2 license. This change helped its adoption in Apache Software Foundation's projects after blacklist of the previous BSD+Patents license clause.

<span class="mw-page-title-main">DBeaver</span> Multi-platform database administration software

DBeaver is a SQL client software application and a database administration tool. For relational databases it uses the JDBC application programming interface (API) to interact with databases via a JDBC driver. For other databases (NoSQL) it uses proprietary database drivers. It provides an editor that supports code completion and syntax highlighting. It provides a plug-in architecture that allows users to modify much of the application's behavior to provide database-specific functionality or features that are database-independent. It is written in Java and based on the Eclipse platform.

Vapor is an open source web framework written in Swift. It can be used to create RESTful APIs, web apps, and real-time applications using WebSockets. In addition to the core framework, Vapor provides an ORM, a templating language, and packages to facilitate user authentication and authorization.

HammerDB is an open source database benchmarking application developed by Steve Shaw. HammerDB supports databases such as Oracle, SQL Server, Db2, MySQL and MariaDB. HammerDB is written in TCL and C, and is licensed under the GPL v3.

Servant is a web framework based on the functional 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. 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.