Package

purescript-concur-core

Repository
purescript-concur/purescript-concur-core
License
MIT
Uploaded by
ajnsit
Published on
2020-04-28

Join the chat at https://gitter.im/concurhaskell Join the chat at https://gitter.im/concurhaskell Purescript-Concur-Core on Pursuit

Concur UI Lib is a brand new client side Web UI framework that explores an entirely new paradigm. It does not follow FRP (think Reflex or Reactive Banana), or Elm architecture, but aims to combine the best parts of both. This repo contains the Concur implementation for Purescript, Core components only. It does NOT include a UI backend. For example, please look at Purescript-Concur-React to use the React backend.

Documentation

Work in progress tutorials are published in the Concur Documentation site

API documentation is published on Pursuit.

Performance

Purescript-Concur is reasonably light. The entire uncompressed JS bundle, including react and all libraries, for the entire example application in this repo clocks in at 180KB. You can build this bundle yourself with the command npm run prod (currently broken due to the move to spago).

This leads to pretty fast initial load times. Running the Chrome audit on https://ajnsit.github.io/purescript-concur/ produces -

Ports to other languages

Concur's model translates well to other platforms.

  1. Concur for Haskell - The original version of Concur written in Haskell.
  2. Concur for Javascript - An official but experimental port to Javascript.
  3. Concur for Python - An unofficial and experimental port to Python. Uses ImgUI for graphics. Created and Maintained by potocpav.

Installation

You can quickly get a production setup going (using Spago and Parcel) by cloning the Purescript Concur Starter.

Else, if you use Spago -

spago install purescript-concur-core

Or if you use Bower -

bower install purescript-concur-core

Building from source

git clone https://github.com/purescript-concur/purescript-concur-core.git
cd purescript-concur-core
npm install
# Build source and examples
npm run build

Note that you would need to choose a Concur backend (such as the React backend) before you can use the library to build UIs.