This article is being considered for deletion in accordance with Wikipedia's deletion policy. Please share your thoughts on the matter at this article's entry on the Articles for deletion page. Feel free to improve the article, but the article must not be blanked, and this notice must not be removed, until the discussion is closed. For more information, particularly on merging or moving the article during the discussion, read the guide to deletion. |
This article relies too much on references to primary sources . (September 2007) (Learn how and when to remove this template message) |
Original author(s) | Alex Jacobson |
---|---|
Stable release | 7.0 / March 29, 2012 |
Repository | |
Operating system | Portable (requires GHC and libraries) |
Platform | Portable |
Available in | Haskell |
Type | Application server |
License | BSD-3 |
Website | http://www.happstack.com/ |
Happstack (Haskell Application Stack) is a free application server for websites written in the functional programming language Haskell. It integrates handling Web, persistence, XML/XSLT, and templating functionality. [1]
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, not price: users—individually or in cooperation with computer programmers—are free to do what they want with their copies of a free software regardless of how much is paid to obtain the program. Computer programs are deemed free insofar as they give users ultimate control over the first, thereby allowing them to control what their devices are programmed to do.
An application server is a software framework that provides both facilities to create web applications and a server environment to run them.
A website or Web site is a collection of related network web resources, such as web pages, multimedia content, which are typically identified with a common domain name, and published on at least one web server. Notable examples are wikipedia.org, google.com, and amazon.com.
It makes use of a number of Haskell libraries and systems such as Parsec, Cabal, Template Haskell, and monad transformers ("Your app then is just a set of state transformer functions (in the MACID Monad) that take an event and state as input and that evaluate to a new state, a response, and a (possibly null) set of sideeffects." [1] ) among others.
Parsec is a library for writing parsers in Haskell. It is based on higher-order parser combinators, so a complicated parser can be made out of many smaller ones. It has been reimplemented in many other languages, including Erlang,, Elixir,, OCaml, and F#, as well as imperative languages such as C#, and Java.
The Haskell Cabal aids in the packaging and distribution of software packages. It is contained in the Haskell Platform.
Template Haskell is an experimental language extension to the Haskell programming language implemented in the Glasgow Haskell Compiler. In early incarnations it was also known as Template Meta-Haskell.
Happstack is the continuation of the HAppS project. [2] The project name was changed to highlight the transition to a more open development model and a change in project leadership. The transition was made with the blessing of Alex Jacobson, and the HAppS developers are still involved in the coding.
The staged event-driven architecture (SEDA) refers to an approach to software architecture that decomposes a complex, event-driven application into a set of stages connected by queues. It avoids the high overhead associated with thread-based concurrency models, and decouples event and thread scheduling from application logic. By performing admission control on each event queue, the service can be well-conditioned to load, preventing resources from being overcommitted when demand exceeds service capacity.
Prevayler is an open-source (BSD) system-prevalence layer for Java: it transparently persists Plain Old Java Objects. It is an in-RAM database backed by snapshots of the system via object serialization, which are loaded after a system crash to restore state. Changes to data happen via transaction operations on objects made from serializable classes. Prevayler's development was started by Klaus Wuestefeld.
Twisted is an event-driven network programming framework written in Python and licensed under the MIT License.
This free-software-related article is a stub. You can help Wikipedia by expanding it. |