MFlow: (Web) application server. Stateful server processes. Simple, statically correct widget combinators.

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

Simple application server with stateful request-response flows, persistent and transparent session handling. server process management, combinators for the definition of widgets and formlets that can be mixed freely with HTML formatting and produce statically typed web applications. Adopt and extend the best formlet/applicative Haskell traditions Console and window oriented apps are possible.

MFlow (MessageFlow) was created initially as the user interface for the Workflow package . Currently is an alpha version. It has only basic authentication but I plan to inprove it for serious applications.

Examples included

It includes Application Server features such is resource an process management and automatic recovery

Resource management: The user can define process and session timeout. The process is automatically rerun after timeout if a new request arrive with transparent recovery of state, at the point of the interrupted dialog even after server crash.

The backend operation relies on the Workflow package (""), this gives transparent sessión persistence and recovery, all of this is supported by TCache (""), that gives backend-independent transactions and can be used directly by the programmer. Persistence in files for session and data out of the box enables very fast prototyping.

All the plumbing is hidden to the programmer, There is no methods for session management, database query, recovery and so on. All of this is transparent So the surface exposed to the programmer is minimal.

Includes generalized formlets that permits the mix of active widgets in the same page while remaining statically typed and, thus the programs can verify correctness at compilation time.

Includes combinators for seamless inclusion of these widgets within user defined HTML formatting. Bindings for Text.XHtml. The widget generation may be easy for user with familiarity with formlets/digestive functors and Text.XHtml formatting.

Currently it has bindings for the Hack interface

Streaming facilities.

To do:

Bindings for HSP


Other bindigs for Hack alternatives

Versions [faq] 0.0.0, 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5,,,,,,,,,,,,,,,,,,,,,,,,,, 0.3.3, 0.4.0, 0.4.1, 0.4.2, 0.4.4, 0.4.5,,,,,,,,,,,,,,
Dependencies base (>4.4 && <4.6), bytestring, containers, extensible-exceptions, hack, hack-handler-simpleserver, mtl, old-time, RefSerialize (>= && <0.2.9), stm (>2), TCache (>= && <0.9.1), transformers, vector, Workflow (>= && <0.6.1), xhtml [details]
License BSD-3-Clause
Author Alberto Gómez Corona
Category Web, Application Server
Uploaded by AlbertoCorona at Sun Feb 5 22:48:04 UTC 2012
Distributions NixOS:
Downloads 27773 total (459 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs not available [build log]
All reported builds failed as of 2016-12-25 [all 7 reports]


  • MFlow
    • MFlow.Forms
      • MFlow.Forms.XHtml
    • MFlow.Hack
      • MFlow.Hack.XHtml
        • MFlow.Hack.XHtml.All


Maintainer's Corner

For package maintainers and hackage trustees