Files
awesome-awesomeness/html/purescript.html
2025-07-18 22:22:32 +02:00

298 lines
12 KiB
HTML
Raw Permalink Blame History

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