Project Awesome project awesome

JavaScript > Functional Programming

Collection 6.0k stars GitHub

Libraries

Ramda 24.1k updated 2mo ago

A practical functional library for JavaScript that is designed specifically for a functional programming style. A style that makes it easy to create functional pipelines and never mutates user data. +TS.

Ramda Adjunct 685 updated 4d ago

is a community-maintained extension of Ramda.

Ramda-extension 167 updated 11mo ago

is set of utility point-free functions composed only from Ramda functions.

Rambda 1.8k updated 1mo ago

A faster alternative to Ramda in under 10kB.

Rambdax 223 updated 9mo ago

Extended version of Rambda

lodash/fp 61.6k updated 1mo ago

An instance of Lodash with its methods wrapped to produce immutable, auto-curried, iteratee-first, data-last methods. +TS.

iterflow

Powerful iterator utilities for TypeScript with statistical operations, windowing, and lazy evaluation. +TS

functional.js 224 updated 1mo ago

A lightweight functional JavaScript library that facilitates currying and point-free / tacit programming.

101 1.5k updated 4y ago

A modern and modular JavaScript utility library made to work well with vanilla JavaScript methods. -TS

fnuc 16 updated 10y ago

A functional library for CoffeeScript (and JavaScript) to facilitate functional composition and higher order functions.

barely-functional 107 updated 8y ago

A tiny (2.7kb) functional programming library using native ES5/6 operations. -TS.

bluebird-promisell 44 updated 8y ago

A practical functional programming library for promises.

preludejs 100 updated 2y ago

Hardcore Functional Programming for JavaScript. -TS.

1-liners 801 updated 2y ago

Functional tools that couldn’t be simpler. A dead simple functional utility belt, hand-crafted with love and attention. -TS.

fn-curry 6 updated 12y ago

A simple function to curry a function.

curry 86 updated 6y ago

Curry your functions using function bind syntax.

compose-function 56 updated 6y ago

Compose a new function from smaller functions.

functionize 50 updated 11y ago

A collection of functions which aid in making non-functional libraries functional.

lambdajs 142 updated 11y ago

The full ECMAScript API done a functional way.

react-on-lambda 265 updated 1y ago

Replace JSX in React with functions (currying, compositions and etc).

trifl 35 updated 9y ago

A functional user interface library with unidirectional dataflow and a virtual dom.

funcy 249 updated 7y ago

An experiment in adding functional pattern matching to JavaScript. Experimental

date-fp 119 updated 6y ago

A functional utility library for working with JavaScript dates. All functions in date-fp are pure, autocurried and will not mutate the date objects they are applied to.

js-joda 1.7k updated 6d ago

An immutable date and time library that provides a simple, domain-driven and clean API based on the ISO8601 calendar.

_part_ 42 updated 12y ago

A micro library that encourages functional programming by making native methods available as partially applied functions.

claire

A property-based testing library for clearly specifying code invariants and behaviour.

FPO.js 450 (archived)

FP library for JavaScript by Kyle Simpson (aka getify). Supports named-argument style methods.

Javascript Parser Combinator 150 updated 24d ago

Javascript parser combinator implementation inspired by the Haskell's Parsec

fun-task 374 updated 3y ago

An abstraction for managing asynchronous code in JS. Tasks are similar to Promises with the key difference that Tasks can represent a computation while Promises can represent only the results of a computation. Ships with Flow type definitions.

most 3.5k updated 3y ago

Ultra-high performance reactive programming to help you compose asynchronous operations on streams of values and events without many of the hazards of side effects and mutable shared state.

zen-signals 53 updated 3y ago

The simplest signal library possible

funfix 630 (archived)

Funfix is a library of type classes and data types for Functional Programming in JavaScript, TypeScript and Flow. +CT, +TS.

pico-lambda 71 updated 8y ago

Arrays, Strings and things the functional way. A 640b functional library based on native methods. -TS.

pareto-js 260 updated 5y ago

An extremely small, intuitive and fast functional utility library for JavaScript -TS.

fpEs 43 updated 2y ago

A small library provides simple usages of basic FP & pattern-matching/sumtype & MonadIO/Rx & Optional for Javascript. -TS.

TGrid 166 updated 3mo ago

Grid Computing Framework, Network & Thread extension of TSTL, supporting RFC (Remote Function Call). +TS.

Ferrum 529 (archived)

Iterator library with support for objects as iterables, lazy evaulation andpipe(); implements Traits (from Rust)/Type Classes (from Haskell) in JS. -TS.

fp-ts 11.5k updated 7mo ago

Typed functional programming in TypeScript. +CT, +TS.

iter-tools 184 updated 9mo ago

a rich toolset for working with iterables, both sync and async. +TS.

futil-js 1.0k updated 1y ago

A collection of functional utilities that could conceivably be part of a library like lodash/fp, but for some reason or other are not.

rubico 283 updated 19d ago

[a]synchronous functional syntax

rocket-pipes

Powerful pipes, that chain Promise and ADT like Maybe or Either from popular FP libraries. +TS

omg-curry 136 updated 5y ago

Comprehensive Curry Library with Operator Curry, Curry from functions, Decurry and Infifnite Curries.

lfi

A Lazy Functional Iteration Library Supporting Sync, Async, and Concurrent Iteration.

ts-multimethod 4 updated 5d ago

TypeScript multimethods inspired by Clojure multimethods. +TS

ts-fp-di 5 updated 10mo ago

Tiny TypeScript functional dependency injection, based on Node.js AsyncLocalStorage. +TS

effect-ts 13.6k updated 3d ago

A Fully-fledged functional effect system for typescript with a rich standard library. +TS

qio 74 updated 3y ago

A type-safe, functional, performant, lawful, composable data structure that solves practical problems of effect-full code in node and browser. +TS

Ditox.js 100 updated 1mo ago

Powerful dependency injection container for building modular apps. +TS

RxEffects 37 updated 1y ago

Reactive state and effect management with RxJS. +TS

fxts 1.2k updated 1mo ago

Lazy evaluation and concurrency. +TS

ts-belt 1.2k updated 1y ago

Fast, modern, and practical utility library for FP in TypeScript. (Uses a data-first approach like remeda, but is faster than remeda, ramda, rambda, and lodash/fp.)

fp-multik

JS/TS lightweight value-multimethod util

true-myth 1.3k updated 5d ago

A library for safe, idiomatic null and error handling in TypeScript, with Maybe and Result types, supporting both a functional style and a more traditional method-call style

ts-pattern 14.9k updated 4d ago

The exhaustive Pattern Matching library for TypeScript, with smart type inference. Pattern Matching is a code-branching technique coming from FP languages.

hyogwa 62 updated 1y ago

Natural effect system that fits TypeScript; Write codes as you write plain typescript code.

Verticalize 300 updated 1y ago

Super lightweight function that looks and behaves like a pipe operator.

PureEval 34 updated 2y ago

A powerful JavaScript functional programming toolset, including utility functions and abstract data structures.

context-fp 2 (archived)

Microscopic functional programming context aka dependency injection. +TS

klubok 2 updated 3d ago

Pipes with easy mocking, intended for huge amount of unit tests. +TS

fp-filters 86 updated 6mo ago

A curated collection of 130+ common-use filter functions. Written in a functional programming style. Lightweight direct imports. Supports ES modules and CommonJS. 100% Unit tested. +TS

tinyeffect 34 updated 1y ago

A tiny TypeScript library for handling side effects in a unified way using algebraic effects. +TS

lfi 349 updated 3mo ago

A Lazy Functional Iteration Library Supporting Sync, Async, and Concurrent Iteration.

ts-belt

Fast, modern, and practical utility library for FP in TypeScript. (Uses a data-first approach like remeda, but is faster than remeda, rambda, and lodash/fp.)

Data Structures

Icepick 423 updated 4y ago

Utilities for treating frozen JavaScript objects as persistent immutable collections

Immutable.js 33.1k updated 4d ago

Immutable persistent data collections.

Immer 28.9k updated 19d ago

Immer is a tiny package for immutable state based on copy-on-write mechanism. +TS.

Mori 3.4k updated 19d ago

ClojureScript’s persistent data structures and supporting API from the comfort of vanilla JavaScript.

Baobab 3.2k updated 3y ago

persistent and optionally immutable data tree with cursors.

immutable-sequence.js 15 updated 10y ago

High performance implementation of Immutable Sequence in JavaScript, based on Finger Trees.

DerivableJS 519 updated 7y ago

Functional Reactive State for JavaScript and TypeScript. DerivableJS enables you to make elegant declarative statements about how your bits of state are related. +TS.

imlazy 104 updated 11d ago

Library for creating and manipulating lazy iterables using the ES2015 iteration protocols.

collectable 279 updated 3y ago

Super high-performance immutable data structures for modern JavaScript and TypeScript applications. +TS.

List 1.7k updated 2y ago

An extremely fast immutable list with a comprehensive functional API. Designed to seamlessly integrate with Ramda.

prelude.ts 390 updated 2y ago

Immutable persistent collections, functional constructs such as Option and Either, and combinators. Implemented in Typescript but supports javascript too. +CT, +TS.

TSTL 635 updated 7mo ago

C++ STL (Standard Template Library) is implemented in TypeScript. STL Containers, iterators, algorithms and functors, that following functional programming rule, are provided. +TS.

Algebraic Data Types

Fantasy Land 10.2k updated 1y ago

Not a library, but a specification of the Monad laws for libraries to follow.

Static Land 774 updated 6y ago

Specification similar to Fantasy Land but based on static methods rather than instance methods.

immutable-ext 489 updated 7y ago

FantasyLand extensions for Immutable.js.

daggy 705 updated 4y ago

Library for creating tagged constructors.

Sanctuary 3.1k updated 1y ago

Sanctuary makes it possible to write safe code without null checks. +CT, +TS.

union-type 479 updated 6y ago

A small JavaScript library for defining and using union types.

freeky 177 updated 8y ago

A collection of Free monads.

Fluture 2.5k updated 1y ago

A Future library with included control utilities, high performance and great error messages.

fantasy-combinators 66 (archived)

Common combinators.

fantasy-birds 93 (archived)

Port of the Haskell package Data.Aviary.Birds. Everything for your combinatory needs.

crocks 1.6k updated 3y ago

A collection of popular Algebraic Data Types with the main goal to curate and provide not only a common interface between each type, but also all of the helper functions needed to hit the ground running. -TS.

kudo-js 23 updated 2mo ago

A small utility library with a set of Algebraic Data Types and Helper functions to help you write code in a functional programming style in Javascript

purify 1.6k updated 3mo ago

Functional programming library for TypeScript focusing on ADTs. +CT, +TS.

MojiScript 147 updated 2y ago

an async-first, opinionated, and functional language designed to have 100% compatibility with JavaScript engines

Pratica 487 updated 1y ago

Small, simple, easy FP data types for pragmatic and productive developers who need to ship reliable code fast. +CT, +TS.

Tifi

Tifi is a library for functional programming in TypeScript. It solves a problem of the existence of both undefined and null. Tifi is inspired by the OCaml/Reason utilities for the option data type. +CT, +TS.

sweet-monads 354 updated 1y ago

A collection of popular monads (such as Either and Maybe) and the lazy iterator.

NeverThrow 7.3k updated 1mo ago

This package contains a Result type that represents either success (Ok) or failure (Err).