Awesome
awesome-purescript
A curated list of delightful libraries, tools and other shiny things for PureScript.
Build Tooling
- pulp
- psvm-js - PureScript Version Manager
- purescript-psa - A pretty, flexible error/warning reporting frontend for
psc
- grunt-purescript
- gulp-purescript
- purs-loader for webpack
- psc-package - A package manager for PureScript based on package sets
- spago - PureScript package manager and build tool powered by Dhall and package-sets
Preludes
- purescript-prelude - The standard Prelude.
- purescript-batteries - A PureScript prelude with more features.
UI Libraries
CSS:
- purescript-css - A clean, type-safe library for describing, manipulating and rendering CSS.
React-based:
- purescript-thermite - A simple wrapper for ReactJS inspired by
react-blaze
. - purescript-react - React bindings for PureScript
- purescript-react-basic - An opinionated set of bindings to the React library, optimizing for the most basic use cases.
- purescript-react-basic-hooks - An alternative way to define React components using React's "hooks" APIs. Compatible with
purescript-react-basic
. - purescript-pux - Build type-safe web apps with PureScript.
- purescript-spork - Elm-like for PureScript.
- purescript-concur - Concur UI framework. React backend, but can use others.
- purescript-presto - Write Apps like Mathematical Equations!
- purescript-optic-ui - Write single page web user interfaces declaratively and concisely with the help of lenses and traversals.
- purescript-react-explor - Experiments with comonads for modelling React UIs.
Virtual-DOM based:
- purescript-halogen - A declarative, type-safe UI library.
- purescript-hedwig - Hedwig is a fast, type safe, declarative PureScript library for building web applications.
- purescript-flame - Flame is a fast & simple framework for building web applications in PureScript inspired by purescript-hedwig and Elm
Signals/Behaviors/FRP:
- purescript-flare - Applicative-style reactive user interfaces built on top of purescript-signal.
- purescript-turbine - Purely functional frontend framework powered by FRP.
- purescript-outwatch - A functional and reactive UI framework based on Rx and VirtualDom.
- purescript-panda - What would TEA look like if we had no VDOM?
- purescript-specular - A Reflex-Dom inspired UI library for PureScript.
- purescript-sdom - An experiment in replacing the virtual DOM and avoiding diffing.
- purescript-purview - A UI library based on the incremental lambda calculus.
URL Routers
- purescript-routing - A clean, type-safe routing library for PureScript.
- purescript-cofree-react-router - React-Router implemented in PureScript as Cofree Comonad for the Array functor.
- purescript-trout - Type-level routing for PureScript.
- purescript-boomboom - Never hard code your urls again. Boomboom them all!
- purescript-routing-duplex - Simple bidirectional parser/printers for your routing data types.
Components
- purescript-halogen-formless - A renderless component for building painless forms in Halogen
- purescript-halogen-select - Building blocks for common selection user interfaces like dropdowns, typeaheads, image pickers, and calendars.
- purescript-halogen-echarts - A Halogen integration for the popular ECharts charting library
- purescript-halogen-day-picker - A day picker for Halogen
- purescript-halogen-menu - Interactive menus in Halogen
Asynchronicity and Parallelism
- purescript-aff - An asynchronous effect monad for PureScript.
- purescript-affjax - An asynchronous AJAX library built using Aff.
- purescript-queue - An asynchronous queue library for PureScript.
- purescript-signal - An asynchronous signal library for PureScript, similar to Elm.
- purescript-zeta - An alternative signal implementation in PureScript.
Effect Management
- purescript-eff - The Eff monad, for handling native side effects.
- purescript-effect - The Effect monad, for handling native side effects in PureScript v0.12.x.
Json Serialization
- purescript-argonaut - Json encoding and decoding typeclasses.
- purescript-simple-json - Json encoding and decoding through Generics.
Binary Serialization
- purescript-arraybuffer - Bindings to the ArrayBuffer JavaScript type.
- purescript-arraybuffer-class - Typeclasses for ArrayBuffer encoding and decoding.
- purescript-arraybuffer-builder - Builder for serializing ArrayBuffer
- purescript-parsing-dataview - Parser for deserializing ArrayBuffer
- purescript-protobuf - Google Protocol Buffers
Testing
- purescript-test-unit - An asynchronous unit test runner for PureScript.
- purescript-quickcheck - An implementation of QuickCheck in PureScript.
- purescript-quickcheck-laws - Law tests for core classes.
- purescript-benchotron - Straightforward benchmarking for PureScript/JavaScript.
Learning Resources
- Video - "PureScript (Maybe This Time We Get JavaScript Right)" by Bodil Stokke
- Book - "PureScript by Example" by Phil Freeman
- Book (ish) - Jordan's Purescript Reference
- PureScript for Haskellers by Dennis Gosnell
- Podcast - Functional Geekery Episode 22
- Podcast - JSJ 189
- Course (egghead.io) - Functional Programming Concepts in Purescript
- Guide - Real World Halogen
Discovery
- Module Linker - Extension that lets you browse docs by just clicking on
import
declarations on GitHub. - Pursuit
Editor and IDE Plugins
Community
More Resources
- Purescript Ecosystem - Ranked list of popular libraries.
Contribute
Contributions welcome! Read the contribution guidelines first.
License
To the extent possible under law, Pascal Hartig has waived all copyright and related or neighboring rights to this work.