HAppS
Encyclopedia
Happstack is a free
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 application server
Application server
An application server is a software framework that provides an environment in which applications can run, no matter what the applications are or what they do...

 for website
Website
A website, also written as Web site, web site, or simply site, is a collection of related web pages containing images, videos or other digital assets. A website is hosted on at least one web server, accessible via a network such as the Internet or a private local area network through an Internet...

s written in the functional programming language
Functional programming
In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the application of functions, in contrast to the imperative programming style, which emphasizes changes in state...

 Haskell
Haskell (programming language)
Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. It is named after logician Haskell Curry. In Haskell, "a function is a first-class citizen" of the programming language. As a functional programming language, the...

. It integrates handling Web
World Wide Web
The World Wide Web is a system of interlinked hypertext documents accessed via the Internet...

, persistence
Persistence (computer science)
Persistence in computer science refers to the characteristic of state that outlives the process that created it. Without this capability, state would only exist in RAM, and would be lost when this RAM loses power, such as a computer shutdown....

, XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....

/XSLT
XSLT
XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...

, and templating functionality.

It makes use of a number of Haskell libraries and systems such as Parsec, Cabal
Cabal (software)
The Haskell Cabal is the Common Architecture for Building Applications and Libraries; it aids in the packaging and distribution of software packages...

, Template Haskell
Template Haskell
Template Haskell is an experimental language extension to the programming language Haskell implemented in the Glasgow Haskell Compiler . In early incarnations it was also known as Template Meta-Haskell....

, and monad transformer
Monad transformer
In functional programming, a monad transformer is a type constructor which takes a monad as an argument and returns a monad as a result.Monad transformers can be used to compose features encapsulated by monads - such as state, exception handling, and I/O - in a modular way...

s ("Your app then is just a set of state transformer functions (in the MACID
ACID
In computer science, ACID is a set of properties that guarantee database transactions are processed reliably. In the context of databases, a single logical operation on the data is called a transaction...

 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.") among others.

Relation to HAppS

Happstack is the continuation of the HAppS project. 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.

See also

  • Staged event-driven architecture
    Staged event-driven architecture
    The staged event-driven architecture refers to an approach to software design 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...

     (SEDA)
  • Prevayler
    Prevayler
    Prevayler is an open source system prevalence layer for Java: it transparently persists Plain Old Java Objects. Read operations are three to four orders of magnitude faster with Prevayler when compared to traditional database systems since all objects are always in RAM and in-process.The fact that...

  • Twisted
    Twisted (software)
    Twisted is an event-driven network programming framework written in Python and licensed under the MIT License.Twisted projects variously support TCP, UDP, SSL/TLS, IP Multicast, Unix domain sockets, a large number of protocols , and much more...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK