MFlow: Web app server for stateful processes with safe, composable user interfaces.

[ application-server, bsd3, library, web ] [ Propose Tags ]

A Web framework with some unique features thanks to the power of the Haskell language. MFlow run stateful server processes; All the flow of requests and responses are coded by the programmer in a single function. Allthoug single request-response flows and callbacks are possible. Therefore, the code is more understandable. It is not continuation based. It uses a log for thread state persistence and backtracking forall handling the back button. Because that the persistent state is small and can be synchronized. So potentially that makes the MFlow architecture scalable

These processes are stopped and restarted by the application server on demand, including its execution state. Therefore session management is automatic. State consistence and transactions are given by the TCache package.

The processes interact trough widgets, that are an extension of formlets with additional applicative combinators, formatting, link management, callbacks, modifiers, caching, byteString conversion and AJAX. All is coded in pure haskell.

The interfaces and communications are abstract, but there are bindings for blaze-html, HSP, Text.XHtml and byteString , Hack and WAI but it can be extended to non Web based architectures.

Bindings for hack, and hsp >= 0.8, are not compiled by Hackage, and do not appear, but are included in the package files. To use them, add then to the exported modules and execute cabal install

The previous release add transparent back button management, cached widgets, callbacks, modifiers, heterogeneous formatting, AJAX, and WAI integration.

This version add better WAI integration, higher level dynamic Widgets, content management, multilanguage, blaze-html support, stateful ajax for server-side control, user-defined data in sessions and widget requirements for automatic installation of scripts, CSS and server flows.

It is designed for applications that can be run with no deployment with runghc in order to speed up the development process.

See MFlow.Forms for details

Although still it is experimental, it is being used in at least one future commercial project. So I have te commitment to continue its development. There are many examples in the documentation and in the package.

In this release preventGoingBack was added

To do:

  • Clustering

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.0.0, 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.5.1, 0.0.5.2, 0.0.5.3, 0.1.5.0, 0.1.5.1, 0.1.5.2, 0.1.5.3, 0.1.5.4, 0.1.5.5, 0.2.0.0, 0.2.0.1, 0.2.0.2, 0.2.0.3, 0.2.0.4, 0.2.0.5, 0.2.0.6, 0.2.0.7, 0.2.0.8, 0.2.0.9, 0.3.0.0, 0.3.0.1, 0.3.0.2, 0.3.1.0, 0.3.1.1, 0.3.2.0, 0.3.3, 0.4.0, 0.4.1, 0.4.2, 0.4.4, 0.4.5, 0.4.5.1, 0.4.5.2, 0.4.5.3, 0.4.5.4, 0.4.5.5, 0.4.5.6, 0.4.5.7, 0.4.5.8, 0.4.5.9, 0.4.5.10, 0.4.5.11, 0.4.5.12, 0.4.5.13, 0.4.6.0
Dependencies base (>4.0 && <5), blaze-html, blaze-markup, bytestring, case-insensitive, conduit, containers, directory, extensible-exceptions, http-types, mtl, old-time, parsec, random, RefSerialize, stm (>2), TCache, text, transformers, utf8-string, vector, wai, warp, Workflow, xhtml [details]
License BSD-3-Clause
Author Alberto Gómez Corona
Maintainer agocorona@gmail.com
Category Web, Application Server
Bug tracker https://github.com/agocorona/MFlow/issues
Source repo head: git clone http://github.com/agocorona/MFlow
Uploaded by AlbertoCorona at 2013-04-24T22:47:18Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 47173 total (99 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Successful builds reported [all 1 reports]