MFlow: Web app server for stateful processes with safe, composable user interfaces.
A Web framework with some unique features thanks to the power of the Haskell language. MFlow run stateful server processes. Because flows are stateful, not isolated request-responses, the code is more understandable, because all the flow of request and responses is coded by the programmer in a single function. Allthoug single request-response flows and callbacks are possible.
Technically it is a Web application server for stateful processes (flows) that are optionally persistent. These processes interact with the user trough interfaces made of widgets that return back statically typed responses to the process that sent the interface (including links). The process is coded in pure haskell (with optional XML from Haskell Server Pages). It adopt and extend the formlet/applicative approach. The interfaces and communication are abstract, but it has bindings for HSP, Text.XHtml and byteString , Hack and WAI but it can be extended to non Web based architectures.
It includes Application Server features such is process and session timeouts and automatic recovery of flow execution state.
This release add transparent back button management, cached widgets, callbacks, modifiers, heterogeneous formatting AJAX, and WAI integration.
It is designed for coding an entire application can be run with no deployment with runghc in order to speed up the development process.
See MFlow.Forms for details
Altroug still it is experimental, it is 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.
For package maintainers and hackage trustees