• Stars
    star
    305
  • Rank 136,879 (Top 3 %)
  • Language
    JavaScript
  • License
    BSD 3-Clause "New...
  • Created over 7 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An unusual Web UI Framework for Haskell

Concur

Join the chat at https://gitter.im/concurhaskell Join the chat at https://gitter.im/concurhaskell

A brand new client side Web UI framework for Haskell 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.

Documentation

Work in progress tutorials are published in the Concur Documentation site

Installation

It has three backends -

  1. React based, called concur-react. You can use the Concur-React Quickstart Template to quickly get started.

    An example of using Native React Widgets is here - Drag Drop Sortable List Widget (React) - Demo - Demonstrates Concur binding to React-Sortable-Tree.

  2. Virtual-Dom based, called concur-vdom. (Bitrotten). You can use the Concur-Vdom Quickstart Template to quickly get started.

  3. Replica (i.e. remote virtual-dom) based, called concur-replica. Created and maintained by pkamenarsky. Head to its project page for more information.

Performance

Access some performance benchmarks here - https://ajnsit.github.io/concur-benchmarks/

Ports to other languages

Concur's model translates well to other platforms.

  1. Concur for Purescript - An official port to Purescript which is well maintained.
  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.

Examples

  1. Click Counting Example - Demo - Count total number of clicks on the page, with a button that increments the click count by 10, and also autoincrement clicks every second.
  2. TodoMVC Example - Demo - The canonical TodoMVC example, with views modeled after the one in Elm.
  3. Mario Example - Demo - Port of the Mario example from Elm.
  4. High/Low Game (Virtual-dom) - Demo - An extremely simple number guessing game in 15 lines of code.
  5. High/Low Game (React) - Demo - The same HiLo game, using the React backend.
  6. Kirby Super Star Ultra Splits Timer GUI Challange - Demo - Concur implementation of the KSSU Splits Timer GUI Challenge. Shows a moderately complex UI that's not a todolist!
  7. Menu Widget (React) - Demo - Builds a generic menu widget in 10 lines of code.
  8. Drag Drop Sortable List Widget (React) - Demo - Demonstrates Concur binding to React-Sortable-Tree. A good example of reusing existing React components in Concur.
  9. Your first 8 Concur Pipes Widgets (React) - Demo - Your first 8 Concur Pipe programs! Inspired from the mighty Fudgets' - http://www.altocumulus.org/Fudgets/Intro/

More Repositories

1

purescript-companies

Community curated list of companies that use Purescript
136
star
2

concur-js

Concur UI Library for Javascript
JavaScript
76
star
3

concur-documentation

Documentation for Concur
JavaScript
66
star
4

languages-that-compile-to-sql

A list of languages that compile to SQL
53
star
5

wai-routes

Typesafe URLs for Haskell Wai applications
Haskell
42
star
6

purescript-typeable

Reified types for Purescript
PureScript
21
star
7

purescript-formless-independent

Formless library, Independent of any UI Framework dependencies
PureScript
17
star
8

what-purescript-needs

Purescript community project ideas. a.k.a. What Purescript needs to take over the world
16
star
9

purescript-es4x

Dhall
13
star
10

purescript-from-scratch

A comprehensive and practical tutorial for people to learn Purescript without any prior experience with functional programming
13
star
11

r2d3

The R2D3 Robotics simulation project. R2D3 is a Free, Cross Platform, Generic Robotic Manipulator Simulator and Development Environment built using Blender and Python. It's main goal is to provide a simple but feature-rich platform for Educational & Research Usage. Much of it is currently Scorbot ER-V (From Intelitek) oriented though that situation will change in the near future.
Python
13
star
12

purescript-consequence

A Purescript DSL for Analytics and Reporting
PureScript
8
star
13

pure-sarcasm

A Wasm-GC backend for PureScript
PureScript
8
star
14

purescript-concur-realworld

RealWorld example for Purescript-Concur
PureScript
6
star
15

purescript-react-starter

Best practices for using React with Purescript
Dhall
5
star
16

luautils

Helpers for Haskell integration with Lua
Haskell
5
star
17

purescript-halogen-vdom-independent

Halogen-vdom, liberated from the web
PureScript
5
star
18

purescript-supply

Pure splittable value supply for Purescript
PureScript
5
star
19

purescript-concur-react-router

React Router bindings for Purescript-Concur
PureScript
4
star
20

luachunk

Haskell library for reading and writing Lua bytecode chunks
Haskell
4
star
21

SimpleServer

A simple static server written in Haskell, for when Apache is overkill
Haskell
4
star
22

concurse

A port of the Concur UI library to Rust
Rust
4
star
23

vyom

Extensible algebra for creating typesafe DSLs in Haskell
Haskell
4
star
24

diferencia

A generic, efficient, and typesafe, expression diffing algorithm
Haskell
4
star
25

purescript-concur-react-mui

Material UI bindings for Purescript-Concur
PureScript
3
star
26

purescript-bun

PureScript bindings to Bun runtime (https://bun.sh/), and benchmarks
Dhall
3
star
27

high-consequence

Analytics DSL in Haskell
Haskell
3
star
28

purescript-tagless

An extensible algebra for creating typesafe DSLs in Purescript
PureScript
3
star
29

purescript-concur-semantic

Semantic UI bindings for Concur
PureScript
3
star
30

js-monads

Monadic do-notation in JS, without babel
JavaScript
3
star
31

purescript-flexui

A Flexbox based UI Layout DSL for Purescript
PureScript
2
star
32

aoc2022

Advent of code 2022 in Rust
Rust
2
star
33

purescript-rockon

Purescript + Robotics + Concur
PureScript
2
star
34

purescript-adventofcode

Advent Of Code Solutions
PureScript
2
star
35

fp-fp

FP (mostly Haskell and Purescript) insights across all experience ranges
2
star
36

helix

Helix - Haskell web framework
Haskell
2
star
37

fay-build

A Build System For Fay (Haskell) Code
Haskell
2
star
38

mysql_workbench_rails_plugin

A rails plugin for mysql workbench (old code)
Lua
2
star
39

reddit-client

A pure javascript reddit client written using the AngularJS framework
JavaScript
2
star
40

purescript-concur-spectacle

Spectacle lib bindings for Purescript-Concur
JavaScript
2
star
41

FactorCSS

FactorCSS (Haskell based CSS refactoring tool) modified to support vendor specific css properties. Original code imported from the FactorCSS repo at http://zamez.org/source/factorcss/
Haskell
2
star
42

purescript-lego-boost

Lego Boost BLE protocol bindings for Purescript
PureScript
2
star
43

purescript-concur-webpack-starter

A starter kit for a purescript-concur + webpack project
JavaScript
1
star
44

monadbi

BiDirectional monads that can be transformed into each other (atleast partially).
Haskell
1
star
45

haystack

The haskell web stack
Haskell
1
star
46

concur-7guis

7GUIs implemented using Concur
PureScript
1
star
47

haskell-notes

A place to keep some notes about Haskell, Purescript, and Strongly Typed Functional Programming
1
star
48

KlipOn

An android app to enable copying images to the clipboard
Kotlin
1
star
49

purescript-concur-algebraic

Algebraic effects for Concur
PureScript
1
star
50

dot.vim

My VIM configuration
Vim Script
1
star
51

talks

Talks I want to give in the future
1
star
52

cocoa

A Koka port of Concur UI toolkit
JavaScript
1
star
53

digestive-functors-hamlet

An example of using digestive functors with hamlet
Haskell
1
star
54

center-cursor

A plugin for atom editor. Keeps your cursor centered vertically on screen. Similar to Emacs' centered-cursor-mode or Vim's scrolloff option
CoffeeScript
1
star
55

monadfibre

Monadic functions which provide Choice and Parallelism. Also provides a good example of how to use the MonadBi library.
Haskell
1
star
56

gui-gauntlet

A set of user interface challanges for gui toolkits
1
star
57

reflex-nix-docker

Docker based dev environment for building GHCJS and Reflex apps with Nix. Useful for development on MacOS and Windows.
1
star
58

dot.xmonad

My XMonad configuration
Haskell
1
star
59

tiny-responsive-css-grid

A Tiny Responsive CSS Grid for resource constrained systems (TV / Mobiles)
CSS
1
star
60

fp-freelancers

List of freelancers who work with functional programming languages
1
star
61

layout-engine

Elm
1
star
62

purescript-johnny-five

Purescript bindings for Johnny Five
PureScript
1
star
63

functional-js

Slides for the "Functional Javascript" talk given on 23 October 2014 at the Santiago Javascript group meetup
1
star
64

virtual-dom-polymer

Virtual dom that works with polymer web components. This is a port of https://github.com/Matt-Esch/virtual-dom/
JavaScript
1
star
65

curious-types-and-classes

Curious types and type classes, and where to find them (i.e. where they are used)
1
star
66

purescript-concur-bootstrap

Bootstrap 4 Widgets for Purescript Concur
PureScript
1
star
67

haste-markup

A port of blaze-markup and blaze-html to Haste. In particular, this removes the bytestring and text dependencies, and replaces Text with JSString.
Haskell
1
star