149 lines
9.9 KiB
Markdown
149 lines
9.9 KiB
Markdown
# awesome-purescript [](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
|
|
|
|
[](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
|
|
)
|