packages feed

MFlow-0.3.0.0: MFlow.cabal

name: MFlow
version: 0.3.0.0
cabal-version: >=1.6
build-type: Simple
license: BSD3
license-file: LICENSE
maintainer: agocorona@gmail.com
stability: experimental
Bug-reports: https://github.com/agocorona/MFlow/issues
synopsis: stateful, RESTful web framework
description: MFlow run stateful server processes. This version is the first stateful web framework
             that is as RESTful as a web framework can be.
             .
             The routes are expressed as normal, monadic haskell code in the FlowM monad. Local links
             point to alternative routes within this monadic computation just like a textual menu
             in a console application. Any GET page is directly reachable by means of a RESTful URL.
             .
             All the flow of requests and responses are coded by the programmer in a single procedure.
             Allthoug single request-response flows are possible. Therefore, the code is
             more understandable. It is not continuation based. It uses a log for thread state persistence and backtracking for
             handling the back button. Back button state syncronization is supported out-of-the-box
             .
             The MFlow architecture is scalable, since the state is serializable and small
             .
             The processes are stopped and restarted by the
             application server on demand, including the execution state (if the Wokflow monad is used).
             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
             .
             It is designed for applications that can be run with no deployment with runghc in order
             to speed up the development process. see <http://haskell-web.blogspot.com.es/2013/05/a-web-application-in-tweet.html>
             .
             This release includes:
             .
             - /RESTful/ URLs
             .
             - Automatic independent refreshing of widgets via Ajax. (see <http://haskell-web.blogspot.com.es/2013/06/and-finally-widget-auto-refreshing.html>)
             .
             - Now each widget can be monadic so it can express his own behaviour and can run its own independent page flow. (see <http://haskell-web.blogspot.com.es/2013/06/the-promising-land-of-monadic-formlets.html>)
             .
             - Per-widget callbacks, used in page flows, that change the rendering of the widget (see <http://haskell-web.blogspot.com.es/2013/06/callbacks-in-mflow.html>)
             .
             - Widgets in modal and non modal dialogs  (using jQuery dialog)
             .
             - Other jQuery widgets as MFlow widgets: spinner, datepicker
             .
             The version 0.2 added 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.
             .
             The version  0.1 added transparent back button management, cached widgets, callbacks, modifiers, heterogeneous formatting, AJAX,
             and WAI integration.
             .
             See "MFlow.Forms" for details
             .             .
             To do:
             .
             -Clustering
             .
             -Automatic error traces
             .
category: Web, Application Server
author: Alberto Gómez Corona
data-dir: ""
extra-source-files: Demos/demos.blaze.hs
                  , src/MFlow/Hack.hs
                  , src/MFlow/Hack/Response.hs
                  , src/MFlow/Hack/XHtml.hs
                  , src/MFlow/Hack/XHtml/All.hs
                  , src/MFlow/Forms/HSP.hs


source-repository head
    type: git
    location: http://github.com/agocorona/MFlow

library
    build-depends: Workflow -any, transformers -any, mtl -any,
                   extensible-exceptions -any, xhtml -any, base >4.0 && <5,
                   bytestring -any, containers -any, RefSerialize -any, TCache -any,
                   stm >2, old-time -any, vector -any, directory -any,
                   utf8-string -any, wai -any, case-insensitive -any, http-types -any,
                   conduit -any, text -any, parsec -any, warp -any,
                   random -any,
                   blaze-html -any, blaze-markup -any

    exposed-modules: MFlow MFlow.Wai.Blaze.Html.All
                     MFlow.Forms MFlow.Forms.Admin
                     MFlow.Cookies  MFlow.Wai
                     MFlow.Wai.XHtml.All MFlow.Forms.XHtml
                     MFlow.Forms.Blaze.Html MFlow.Forms.Test
                     MFlow.Forms.Widgets
    other-modules: MFlow.Forms.Internals MFlow.Wai.Response
    exposed: True
    buildable: True
    hs-source-dirs: src .