├── .travis.yml ├── contributing.md └── readme.md /.travis.yml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | rvm: 3 | - 2.2 4 | before_script: 5 | - gem install awesome_bot 6 | script: 7 | - awesome_bot README.md 8 | -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Please ensure your pull request adheres to the following guidelines: 4 | 5 | - Search previous suggestions before making a new one, as yours may be a duplicate. 6 | - Make an individual pull request for each suggestion. 7 | - Use the following format: `[package](link) - Description.` 8 | - New categories, or improvements to the existing categorization are welcome. 9 | - Keep descriptions short and simple, but descriptive. 10 | - Check your spelling and grammar. 11 | - Make sure your text editor is set to remove trailing whitespace. 12 | - The pull request should have a useful title and include a link to the package and why it should be included. 13 | 14 | Thank you for your suggestions! 15 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # awesome-purescript [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 2 | 3 | > A curated list of delightful libraries, tools and other shiny things for PureScript. 4 | 5 | ## Build Tooling 6 | 7 | - [pulp](https://github.com/bodil/pulp) 8 | - [psvm-js](https://github.com/ThomasCrvsr/psvm-js) - PureScript Version Manager 9 | - [purescript-psa](https://github.com/natefaubion/purescript-psa) - A pretty, flexible error/warning reporting frontend for `psc` 10 | - [grunt-purescript](https://github.com/purescript-contrib/grunt-purescript) 11 | - [gulp-purescript](https://github.com/purescript-contrib/gulp-purescript) 12 | - [purs-loader](https://github.com/ethul/purs-loader) for webpack 13 | - [psc-package](https://github.com/purescript/psc-package) - A package manager for PureScript based on package sets 14 | - [spago](https://github.com/spacchetti/spago) - PureScript package manager and build tool powered by Dhall and package-sets 15 | 16 | ## Preludes 17 | 18 | - [purescript-prelude](https://github.com/purescript/purescript-prelude) - The standard Prelude. 19 | - [purescript-batteries](https://github.com/tfausak/purescript-batteries) - A PureScript prelude with more features. 20 | 21 | ## UI Libraries 22 | 23 | CSS: 24 | 25 | - [purescript-css](https://github.com/slamdata/purescript-css) - A clean, type-safe library for describing, manipulating and rendering CSS. 26 | 27 | React-based: 28 | 29 | - [purescript-thermite](https://github.com/paf31/purescript-thermite) - A simple wrapper for ReactJS inspired by `react-blaze`. 30 | - [purescript-react](https://github.com/purescript-contrib/purescript-react) - React bindings for PureScript 31 | - [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. 32 | - [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`. 33 | - [purescript-pux](https://github.com/alexmingoia/purescript-pux) - Build type-safe web apps with PureScript. 34 | - [purescript-spork](https://github.com/natefaubion/purescript-spork) - Elm-like for PureScript. 35 | - [purescript-concur](https://github.com/ajnsit/purescript-concur) - Concur UI framework. React backend, but can use others. 36 | - [purescript-presto](https://github.com/juspay/purescript-presto) - Write Apps like Mathematical Equations! 37 | - [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. 38 | - [purescript-react-explor](https://github.com/paf31/purescript-react-explore) - Experiments with comonads for modelling React UIs. 39 | 40 | Virtual-DOM based: 41 | 42 | - [purescript-halogen](https://github.com/slamdata/purescript-halogen) - A declarative, type-safe UI library. 43 | - [purescript-hedwig](https://github.com/utkarshkukreti/purescript-hedwig) - Hedwig is a fast, type safe, declarative PureScript library for building web applications. 44 | - [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 45 | 46 | Signals/Behaviors/FRP: 47 | 48 | - [purescript-flare](https://github.com/sharkdp/purescript-flare) - Applicative-style reactive user interfaces built on top of purescript-signal. 49 | - [purescript-turbine](https://github.com/funkia/purescript-turbine) - Purely functional frontend framework powered by FRP. 50 | - [purescript-outwatch](https://github.com/OutWatch/purescript-outwatch) - A functional and reactive UI framework based on Rx and VirtualDom. 51 | - [purescript-panda](https://github.com/i-am-tom/purescript-panda) - What would TEA look like if we had no VDOM? 52 | - [purescript-specular](https://github.com/restaumatic/purescript-specular) - A Reflex-Dom inspired UI library for PureScript. 53 | - [purescript-sdom](https://github.com/paf31/purescript-sdom) - An experiment in replacing the virtual DOM and avoiding diffing. 54 | - [purescript-purview](https://github.com/paf31/purescript-purview) - A UI library based on the incremental lambda calculus. 55 | 56 | ## URL Routers 57 | 58 | - [purescript-routing](https://github.com/slamdata/purescript-routing) - A clean, type-safe routing library for PureScript. 59 | - [purescript-cofree-react-router](https://github.com/coot/purescript-cofree-react-router) - React-Router implemented in PureScript as Cofree Comonad for the Array functor. 60 | - [purescript-trout](https://github.com/owickstrom/purescript-trout) - Type-level routing for PureScript. 61 | - [purescript-boomboom](https://github.com/paluh/purescript-boomboom) - Never hard code your urls again. Boomboom them all! 62 | - [purescript-routing-duplex](https://github.com/natefaubion/purescript-routing-duplex) - Simple bidirectional parser/printers for your routing data types. 63 | 64 | ## Components 65 | 66 | - [purescript-halogen-formless](https://github.com/thomashoneyman/purescript-halogen-formless) - A renderless component for building painless forms in Halogen 67 | - [purescript-halogen-select](https://github.com/citizennet/purescript-halogen-select) - Building blocks for common selection user interfaces like dropdowns, typeaheads, image pickers, and calendars. 68 | - [purescript-halogen-echarts](https://github.com/slamdata/purescript-halogen-echarts) - A Halogen integration for the popular ECharts charting library 69 | - [purescript-halogen-day-picker](https://github.com/rnons/purescript-halogen-day-picker) - A day picker for Halogen 70 | - [purescript-halogen-menu](https://github.com/slamdata/purescript-halogen-menu) - Interactive menus in Halogen 71 | 72 | ## Asynchronicity and Parallelism 73 | 74 | - [purescript-aff](https://github.com/slamdata/purescript-aff) - An asynchronous effect monad for PureScript. 75 | - [purescript-affjax](https://github.com/slamdata/purescript-aff) - An asynchronous AJAX library built using Aff. 76 | - [purescript-queue](https://github.com/athanclark/purescript-queue) - An asynchronous queue library for PureScript. 77 | - [purescript-signal](https://github.com/bodil/purescript-signal) - An asynchronous signal library for PureScript, similar to Elm. 78 | - [purescript-zeta](https://github.com/athanclark/purescript-zeta) - An alternative signal implementation in PureScript. 79 | 80 | ## Effect Management 81 | 82 | - [purescript-eff](https://github.com/purescript/purescript-eff) - The Eff monad, for handling native side effects. 83 | - [purescript-effect](https://github.com/purescript/purescript-effect) - The Effect monad, for handling native side effects in PureScript v0.12.x. 84 | 85 | ## Json Serialization 86 | 87 | - [purescript-argonaut](https://github.com/purescript-contrib/purescript-argonaut) - Json encoding and decoding typeclasses. 88 | - [purescript-simple-json](https://github.com/justinwoo/purescript-simple-json) - Json encoding and decoding through Generics. 89 | 90 | ## Binary Serialization 91 | 92 | - [purescript-arraybuffer](https://github.com/jacereda/purescript-arraybuffer) - Bindings to the ArrayBuffer JavaScript type. 93 | - [purescript-arraybuffer-class](https://github.com/athanclark/purescript-arraybuffer-class) - Typeclasses for ArrayBuffer encoding and decoding. 94 | - [purescript-arraybuffer-builder](https://github.com/jamesdbrock/purescript-arraybuffer-builder) - Builder for serializing ArrayBuffer 95 | - [purescript-parsing-dataview](https://github.com/jamesdbrock/purescript-parsing-dataview) - Parser for deserializing ArrayBuffer 96 | - [purescript-protobuf](https://github.com/xc-jp/purescript-protobuf) - Google Protocol Buffers 97 | 98 | ## Testing 99 | 100 | - [purescript-test-unit](https://github.com/bodil/purescript-test-unit) - An asynchronous unit test runner for PureScript. 101 | - [purescript-quickcheck](https://github.com/purescript/purescript-quickcheck) - An implementation of QuickCheck in PureScript. 102 | - [purescript-quickcheck-laws](https://github.com/garyb/purescript-quickcheck-laws) - Law tests for core classes. 103 | - [purescript-benchotron](https://github.com/hdgarrood/purescript-benchotron) - Straightforward benchmarking for PureScript/JavaScript. 104 | 105 | ## Learning Resources 106 | 107 | - [Video - "PureScript (Maybe This Time We Get JavaScript Right)" by Bodil Stokke](https://www.youtube.com/watch?v=yIlDBPiMb0o) 108 | - [Book - "PureScript by Example" by Phil Freeman](https://leanpub.com/purescript/read) 109 | - [Book (ish) - Jordan's Purescript Reference](https://github.com/JordanMartinez/purescript-jordans-reference) 110 | - [PureScript for Haskellers by Dennis Gosnell](http://www.arow.info/blog/posts/2015-12-17-purescript-intro.html) 111 | - [Podcast - Functional Geekery Episode 22](https://www.functionalgeekery.com/episode-22-lambdaconf-2015-part-1/) 112 | - [Podcast - JSJ 189](https://devchat.tv/js-jabber/189-jsj-purescript-with-john-a-de-goes-and-phil-freeman) 113 | - [Course (egghead.io) - Functional Programming Concepts in Purescript](https://egghead.io/courses/functional-programming-concepts-in-purescript) 114 | - [Guide - Real World Halogen](https://thomashoneyman.com/guides/real-world-halogen) 115 | 116 | ## Discovery 117 | 118 | - [Module Linker](https://fiatjaf.alhur.es/module-linker/#/purescript) - Extension that lets you browse docs by just clicking on `import` declarations on GitHub. 119 | - [Pursuit](https://pursuit.purescript.org/) 120 | 121 | ## Editor and IDE Plugins 122 | 123 | See [Editor and tool support](https://github.com/purescript/purescript/wiki/Editor-and-tool-support) 124 | 125 | ## Community 126 | 127 | - [`/r/purescript` subreddit](http://www.reddit.com/r/purescript) 128 | - [`#purescript` on Freenode](http://webchat.freenode.net/?channels=purescript) 129 | - [Stack Overflow `purescript` tag](http://stackoverflow.com/questions/tagged/purescript) 130 | - [Google Group](https://groups.google.com/forum/#!forum/purescript) 131 | 132 | ## More Resources 133 | 134 | - [Purescript Ecosystem](https://github.com/xgrommx/purescript-ecosystem) - Ranked list of popular libraries. 135 | 136 | ## Contribute 137 | 138 | Contributions welcome! Read the [contribution guidelines](contributing.md) first. 139 | 140 | 141 | ## License 142 | 143 | [![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/) 144 | 145 | To the extent possible under law, [Pascal Hartig](https://passy.me/) has waived all copyright and related or neighboring rights to this work. 146 | --------------------------------------------------------------------------------