# awesome-purescript [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) > A curated list of delightful libraries, tools and other shiny things for PureScript. ## Build Tooling - [pulp](https://github.com/bodil/pulp) - [psvm-js](https://github.com/ThomasCrvsr/psvm-js) - PureScript Version Manager - [purescript-psa](https://github.com/natefaubion/purescript-psa) - A pretty, flexible error/warning reporting frontend for `psc` - [grunt-purescript](https://github.com/purescript-contrib/grunt-purescript) - [gulp-purescript](https://github.com/purescript-contrib/gulp-purescript) - [purs-loader](https://github.com/ethul/purs-loader) for webpack - [psc-package](https://github.com/purescript/psc-package) - A package manager for PureScript based on package sets - [spago](https://github.com/spacchetti/spago) - PureScript package manager and build tool powered by Dhall and package-sets ## Preludes - [purescript-prelude](https://github.com/purescript/purescript-prelude) - The standard Prelude. - [purescript-batteries](https://github.com/tfausak/purescript-batteries) - A PureScript prelude with more features. ## UI Libraries CSS: - [purescript-css](https://github.com/slamdata/purescript-css) - A clean, type-safe library for describing, manipulating and rendering CSS. React-based: - [purescript-thermite](https://github.com/paf31/purescript-thermite) - A simple wrapper for ReactJS inspired by `react-blaze`. - [purescript-react](https://github.com/purescript-contrib/purescript-react) - React bindings for PureScript - [purescript-react-basic](https://github.com/lumihq/purescript-react-basic) - An opinionated set of bindings to the React library, optimizing for the most basic use cases. - [purescript-react-basic-hooks](https://github.com/spicydonuts/purescript-react-basic-hooks) - An alternative way to define React components using React's "hooks" APIs. Compatible with `purescript-react-basic`. - [purescript-pux](https://github.com/alexmingoia/purescript-pux) - Build type-safe web apps with PureScript. - [purescript-spork](https://github.com/natefaubion/purescript-spork) - Elm-like for PureScript. - [purescript-concur](https://github.com/ajnsit/purescript-concur) - Concur UI framework. React backend, but can use others. - [purescript-presto](https://github.com/juspay/purescript-presto) - Write Apps like Mathematical Equations! - [purescript-optic-ui](https://github.com/zrho/purescript-optic-ui) - Write single page web user interfaces declaratively and concisely with the help of lenses and traversals. - [purescript-react-explor](https://github.com/paf31/purescript-react-explore) - Experiments with comonads for modelling React UIs. Virtual-DOM based: - [purescript-halogen](https://github.com/slamdata/purescript-halogen) - A declarative, type-safe UI library. - [purescript-hedwig](https://github.com/utkarshkukreti/purescript-hedwig) - Hedwig is a fast, type safe, declarative PureScript library for building web applications. - [purescript-flame](https://github.com/easafe/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](https://github.com/sharkdp/purescript-flare) - Applicative-style reactive user interfaces built on top of purescript-signal. - [purescript-turbine](https://github.com/funkia/purescript-turbine) - Purely functional frontend framework powered by FRP. - [purescript-outwatch](https://github.com/OutWatch/purescript-outwatch) - A functional and reactive UI framework based on Rx and VirtualDom. - [purescript-panda](https://github.com/i-am-tom/purescript-panda) - What would TEA look like if we had no VDOM? - [purescript-specular](https://github.com/restaumatic/purescript-specular) - A Reflex-Dom inspired UI library for PureScript. - [purescript-sdom](https://github.com/paf31/purescript-sdom) - An experiment in replacing the virtual DOM and avoiding diffing. - [purescript-purview](https://github.com/paf31/purescript-purview) - A UI library based on the incremental lambda calculus. ## URL Routers - [purescript-routing](https://github.com/slamdata/purescript-routing) - A clean, type-safe routing library for PureScript. - [purescript-cofree-react-router](https://github.com/coot/purescript-cofree-react-router) - React-Router implemented in PureScript as Cofree Comonad for the Array functor. - [purescript-trout](https://github.com/owickstrom/purescript-trout) - Type-level routing for PureScript. - [purescript-boomboom](https://github.com/paluh/purescript-boomboom) - Never hard code your urls again. Boomboom them all! - [purescript-routing-duplex](https://github.com/natefaubion/purescript-routing-duplex) - Simple bidirectional parser/printers for your routing data types. ## Components - [purescript-halogen-formless](https://github.com/thomashoneyman/purescript-halogen-formless) - A renderless component for building painless forms in Halogen - [purescript-halogen-select](https://github.com/citizennet/purescript-halogen-select) - Building blocks for common selection user interfaces like dropdowns, typeaheads, image pickers, and calendars. - [purescript-halogen-echarts](https://github.com/slamdata/purescript-halogen-echarts) - A Halogen integration for the popular ECharts charting library - [purescript-halogen-day-picker](https://github.com/rnons/purescript-halogen-day-picker) - A day picker for Halogen - [purescript-halogen-menu](https://github.com/slamdata/purescript-halogen-menu) - Interactive menus in Halogen ## Asynchronicity and Parallelism - [purescript-aff](https://github.com/slamdata/purescript-aff) - An asynchronous effect monad for PureScript. - [purescript-affjax](https://github.com/slamdata/purescript-aff) - An asynchronous AJAX library built using Aff. - [purescript-queue](https://github.com/athanclark/purescript-queue) - An asynchronous queue library for PureScript. - [purescript-signal](https://github.com/bodil/purescript-signal) - An asynchronous signal library for PureScript, similar to Elm. - [purescript-zeta](https://github.com/athanclark/purescript-zeta) - An alternative signal implementation in PureScript. ## Effect Management - [purescript-eff](https://github.com/purescript/purescript-eff) - The Eff monad, for handling native side effects. - [purescript-effect](https://github.com/purescript/purescript-effect) - The Effect monad, for handling native side effects in PureScript v0.12.x. ## Json Serialization - [purescript-argonaut](https://github.com/purescript-contrib/purescript-argonaut) - Json encoding and decoding typeclasses. - [purescript-simple-json](https://github.com/justinwoo/purescript-simple-json) - Json encoding and decoding through Generics. ## Binary Serialization - [purescript-arraybuffer](https://github.com/jacereda/purescript-arraybuffer) - Bindings to the ArrayBuffer JavaScript type. - [purescript-arraybuffer-class](https://github.com/athanclark/purescript-arraybuffer-class) - Typeclasses for ArrayBuffer encoding and decoding. - [purescript-arraybuffer-builder](https://github.com/jamesdbrock/purescript-arraybuffer-builder) - Builder for serializing ArrayBuffer - [purescript-parsing-dataview](https://github.com/jamesdbrock/purescript-parsing-dataview) - Parser for deserializing ArrayBuffer - [purescript-protobuf](https://github.com/xc-jp/purescript-protobuf) - Google Protocol Buffers ## Testing - [purescript-test-unit](https://github.com/bodil/purescript-test-unit) - An asynchronous unit test runner for PureScript. - [purescript-quickcheck](https://github.com/purescript/purescript-quickcheck) - An implementation of QuickCheck in PureScript. - [purescript-quickcheck-laws](https://github.com/garyb/purescript-quickcheck-laws) - Law tests for core classes. - [purescript-benchotron](https://github.com/hdgarrood/purescript-benchotron) - Straightforward benchmarking for PureScript/JavaScript. ## Learning Resources - [Video - "PureScript (Maybe This Time We Get JavaScript Right)" by Bodil Stokke](https://www.youtube.com/watch?v=yIlDBPiMb0o) - [Book - "PureScript by Example" by Phil Freeman](https://leanpub.com/purescript/read) - [Book (ish) - Jordan's Purescript Reference](https://github.com/JordanMartinez/purescript-jordans-reference) - [PureScript for Haskellers by Dennis Gosnell](http://www.arow.info/blog/posts/2015-12-17-purescript-intro.html) - [Podcast - Functional Geekery Episode 22](https://www.functionalgeekery.com/episode-22-lambdaconf-2015-part-1/) - [Podcast - JSJ 189](https://devchat.tv/js-jabber/189-jsj-purescript-with-john-a-de-goes-and-phil-freeman) - [Course (egghead.io) - Functional Programming Concepts in Purescript](https://egghead.io/courses/functional-programming-concepts-in-purescript) - [Guide - Real World Halogen](https://thomashoneyman.com/guides/real-world-halogen) ## Discovery - [Module Linker](https://fiatjaf.alhur.es/module-linker/#/purescript) - Extension that lets you browse docs by just clicking on `import` declarations on GitHub. - [Pursuit](https://pursuit.purescript.org/) ## Editor and IDE Plugins See [Editor and tool support](https://github.com/purescript/purescript/wiki/Editor-and-tool-support) ## Community - [`/r/purescript` subreddit](http://www.reddit.com/r/purescript) - [`#purescript` on Freenode](http://webchat.freenode.net/?channels=purescript) - [Stack Overflow `purescript` tag](http://stackoverflow.com/questions/tagged/purescript) - [Google Group](https://groups.google.com/forum/#!forum/purescript) ## More Resources - [Purescript Ecosystem](https://github.com/xgrommx/purescript-ecosystem) - Ranked list of popular libraries. ## Contribute Contributions welcome! Read the [contribution guidelines](contributing.md) first. ## License [![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/) To the extent possible under law, [Pascal Hartig](https://passy.me/) has waived all copyright and related or neighboring rights to this work. [purescript.md Github](https://github.com/passy/awesome-purescript )