front: A reactive frontend web framework

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Warnings:

A reactive frontend web framework. See haskell-front.org for more details.


[Skip to Readme]

Properties

Versions 0.0.0.1, 0.0.0.2, 0.0.0.2, 0.0.0.3, 0.0.0.4, 0.0.0.5, 0.0.0.6, 0.0.0.7, 0.0.0.8
Change log ChangeLog.md
Dependencies aeson, async, base (<5), base-compat (>=0.9.1), base64-bytestring, blaze-html (>=0.9 && <0.10), blaze-markup (>=0.8 && <0.10), bytestring (>=0.10 && <0.11), cereal (>=0.5), conduit, cryptonite (>=0.14), data-default, directory, exceptions, fay (>=0.24.0.2), fay-dom, fay-websockets, filepath, front, http-media, http-types (>=0.9), mtl, random, servant (>=0.5), servant-auth-cookie, servant-blaze (>=0.5), servant-server (>=0.5), stm, stm-lifted, text (>=1.2 && <1.3), time, transformers (>=0.4), unordered-containers, wai (>=3.0), wai-websockets, warp (>=3.0), websockets, yesod-core, yesod-static, yesod-websockets [details]
License BSD-3-Clause
Author Andrey Prokopenko
Maintainer persiantiger@yandex.ru
Category Web
Home page haskell-front.org
Source repo head: git clone https://github.com/swamp-agr/front.git
Uploaded by swamp_agr at 2019-04-22T23:13:12Z

Modules

[Index] [Quick Jump]

Flags

Automatic Flags
NameDescriptionDefault
examples

Builds front's examples

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for front-0.0.0.2

[back to package description]

front (work-in-progress)

A front-end web framework which aim is to bring the power of GHC on client side with as less JavaScript as possible by the Fay.

The goal is to have a tiny websockets-based bridge between client and server to propagate client events on server for further handling.

Features

Usage

  1. Add front as a dependency to your project using preferred build tool.
  2. Obtain bundle.js by
curl https://raw.githubusercontent.com/swamp-agr/front/master/examples/todo/static/bundle.js

and include it as static resource in your application server.

  1. Import Shared module.
  2. Choose proper communication model (Only session, Broadcast, etc.).
  3. That's it.

Examples

Developer Installation (Contribution)

For server:

cabal new-build

or

stack build

For client (issue: faylang/fay#459):

cabal sandbox init
cabal install # fay executable and libraries will be loaded
export HASKELL_PACKAGE_SANDBOX=`echo .cabal-sandbox/*-packages.conf.d/`
.cabal-sandbox/bin/fay \
  --package fay-dom,fay-websockets \
  --include shared,fay \
  -o bundle.js fay/Client.hs

Please do not hesitate to open Issue to discuss your questions or use cases.

Acknowledgement

This ongoing framework would not have happened without these people and technologies: