A collection of awesome Purescript libraries, resources and shiny things.
- Essential tools
- Essential libraries
- Documentation, references and tutorials
- Data types
- Maths
- Random
- Lenses
- Http
- GraphQL
- Json
- UI
- Web
- CSS
- Collaborative editing
- Databases
- Testing
- Benchmark
- FFI
- IDEs
- Organisations
- purs - The compiler.
- spago - Package manager and build tool.
- purescript-language-server - The LSP implementation for PureScript.
- Pursuit - The website containing documentation for PureScript packages.
- esbuild - JavaScript bundler used by Spago.
- purs-tidy - Purescript code formatter.
- purescript-backend-optimizer - A tool to optimize JS genererated code.
- prelude - The basic prelude.
- effect - Native side effects (equivalent to IO in Haskell).
- aff - Asynchronous effects.
- maybe - Optional values.
- either - Commonly used for error handling.
- arrays - JavaScript arrays.
- transformers - Monad transnformers ReaderT, StateT, MaybeT, etc (equivalent to mtl in Haskell).
- exists - Encodes existential types.
- PureScript: Jordan's Reference - A comprehensive reference for the PureScript language and its idioms, ranging from total beginner to advanced topics.
- PureScript by Example - A short but dense book from the creator of PureScript (with excercises).
- PureScript Cookbook - A collection of simple self-contained examples covering common front-end, back-end and CLI tasks in PureScript.
- ordered-collections - Ordered Maps and Sets.
- unordered-collections - Hash-based immutable Maps and Sets.
- lists - Linked lists.
- fast-vect - Fast, type-safe vector libary for Purescript inspired by Idris. A vector is list with its size encoded in the type.
- tree-rose - Tree zippers.
- 📀 record-studio - Working with records made easy.
- 🎄 yoga-tree - A data type for representing trees with arbitrary number of children and handy zippers.
- 🕉️ yoga-om - A powerful general purpose type for writing applications. Includes dependency injection via
Reader
, errorVariant
s and of courseAff
. - 💍 untagged-union - A data type for untagged unions.
- 🔑 vault - A typed, persistent store for values of arbitrary types. This is a port of the Haskell Vault library by Heinrich Apfelmus.
- ❄️ unique - Abstract unique objects.
- js-bigints - FFI bindings for JavaScript's BigInt. Does not require external js libraries.
- rationals - Rational numbers.
- random - A basic library to generate random numbers.
- gen - A type class for random generator implementations.
- generate-values - An instance for gen and additional functions.
- profunctor-lenses - A mechanism for updating, viewing, and setting values within nested data structures.
- barlow-lens - Barlow lens makes creating complex lenses such as record lenses super simple.
- tidy-codegen-lens - Generate lenses and prisms for your data types automatically.
- fetch - High-level library for the WHATWG Fetch Living Standard.
- httpurple - A functional http server with a focus on type-safety and making the common case easy.
- routing-duplex - Simple bidirectional parser/printers for your routing data types.
- graphql-fundeps - GraphQL client.
- yoga-json - Light-weight Json parser.
- argonaut - A collection of libraries for working with JSON in PureScript.
- json-codecs - A bidirectional and unidirectional value-based and runtime-configurable typeclass-based JSON codec library.
- react-basic - A binding to the React library.
- react-basic-hooks - React hook API for react-basic.
- react-icons - react-icons`, a gigantic collection of high-quality icons, for Purescript.
- nextjs - Use the #1 react framework in Purescript.
- halogen - A declarative, component-based library entirely written in purescript.
- elmish - An ELM inspired framework (TEA) built on react.
- deku - A FRP web framework for apps that need to be fast. Have a nice documentation.
- web-storage - A low-level library for local storage.
- web-socket - A low-level library for web sockets.
- web-workers - A low-level library for web workers.
- tecton - Domain-specific language for authoring CSS.
- 💾 yoga-postgres -
node-postgres
FFI bindings, originally forked frompurescript-node-postgres
. - 🦸🏻♂️ supabase - Purescript FFI bindings for
supabase
.
- spec - A testing framework, inspired by hspec.
- quickcheck - An implementation of QuickCheck in PureScript.
- assert - Basic assertions library for low level testing.
- minibench - A minimal benchmarking library.
- 🦥 lazy-joe - Purescript ffi for the lazy joe.
- js-objects - Access js object methods and properties without writing JS bindings.
The following organisations are the best entry points when looking for libraries (many of the libraries in this list come from these orgs):
- purescript - Core libraries for purescript.
- purescript-contrib - Common libraries that complement the core libraries.
- purescript-web - Low-level bindings to common web specifications (standards).
- purescript-node - Common libraries that complement the core libraries.
- rowtype-yoga - High quality, type-safe libraries from us 😎.
- purescript-react - Libraries to work with the react ecosystem.