JavaScript Functional programming

Open-source JavaScript projects categorized as Functional programming | Edit details

Top 23 JavaScript Functional programming Projects

  • GitHub repo lodash

    A modern JavaScript utility library delivering modularity, performance, & extras.

    Project mention: "You-Dont-Need-Lodash-Underscore": ESLint plugin for migration guidance to use newer native JS functions | reddit.com/r/javascript | 2022-01-21

    code

  • GitHub repo underscore

    JavaScript's utility _ belt

    Project mention: Open source maintainer pulls the plug on NPM packages colors and faker, now what | news.ycombinator.com | 2022-01-09

    It's both technical and cultural.

    Javascript is used on the front end. Front end devs obsess (or at least used to obsess) over download sized. So you'd have crazy stuff like custom builds of Underscore (https://underscorejs.org/) with just the functions you wanted. Think manual sandboxing, if that makes any sense. You could get a package of Underscore with just map, filter and reduceRight, if you wanted to.

    Now, when Node came around, people wanted as much as possible to have the same libraries available on the front end, so the same obsession with size was carried over.

    Ergo the micro-milli-nano-packages they make.

    Now, about the technical solution to this. We have this, for well defined programming languages (read: statically typed ones, or dynamically typed ones with a clear structure).

    It's a linker. Tech from the 1950s.

    Link (include) just the stuff you want, "tree shake"/"remote dead code" whatever you don't.

    https://www.joelonsoftware.com/2004/01/28/please-sir-may-i-h...

    Java's largely to blame for this, Sun REALLY, REALLY hated stuff that could be hooked into any OS and wasn't portable, so they didn't provide a linker. Everything was supposed to be on their JVM and you were going to install their JVM everywhere (2 billion devices!!!) and to hell with small stuff or heaven forbid, including native libraries. Javascript followed (on top of the Java restrictions they added: dynamic, poorly defined language, that would have made linking with tree shaking really hard, anyway). .Net also followed.

    Almost 3 decades later we're trying to undo that damage.

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • GitHub repo ramda

    :ram: Practical functional Javascript

    Project mention: How to build a slack birthday bot | dev.to | 2022-01-20

    ramda

  • GitHub repo mostly-adequate-guide

    Mostly adequate guide to FP (in javascript)

    Project mention: Help an old OO developer figure out current practices for structuring server side javascript? | reddit.com/r/learnjavascript | 2021-12-19

    On the book front, there are two that I am fond of which have a focus on JavaScript and FP, Professor Frisby’s Mostly Adaquate Guide, and Functional Light JavaScript. They are nice practical books that help you lean into JS’s strength as an FP language while writing real code.

  • GitHub repo Functional-Light-JS

    Pragmatic, balanced FP in JavaScript. @FLJSBook on twitter.

    Project mention: Pragmatic Functional Programming in JavaScript | dev.to | 2022-01-18

    I came across two resources recently which have helped me think through pragmatic functional programming in JavaScript. The first is this talk by Richard Feldman that does a great job of explaining the why of functional programming. The second is this book by Kyle Simpson which proposes a flavor of functional programming that is practical in JavaScript. There are certain areas where my opinions differ from Kyle's, but this book introduces pragmatic functional programming from first principals. Also check out the Mostly Adequate Guide to Functional Programming.

  • GitHub repo lazy.js

    Like Underscore, but lazier

    Project mention: [AskJS] Is There Some Way to Lazy Evaluate Arrays in JavaScript? | reddit.com/r/javascript | 2021-12-23
  • GitHub repo Sugar

    A Javascript library for working with native objects.

    Project mention: Any bad experience with libraries such as date-fns.js or sugar.js (instead of moment.js) with Netsuite SuiteScript 2.X? (xposted from /r/Netsuite) | reddit.com/r/SuiteScript | 2021-10-18

    I've been meaning to use moment.js for a long time in Netsuite but instead always jimmied around with native javascript date functions. Finally getting around to doing some basic functions with moment.js in a couple of solutions, but non-Netsuite developers are telling me date-fns.js is more intuitive and lightweight than moment.js. Also there are other libraries like sugar.js with functions like "Date.create('last week Friday');" which look like it would be fun to use with N/query or N/search.

  • OPS

    OPS - Build and Run Open Source Unikernels. Quickly and easily build and deploy open source unikernels in tens of seconds. Deploy in any language to any cloud.

  • GitHub repo Sanctuary

    :see_no_evil: Refuge from unsafe JavaScript

    Project mention: Introduction to Functional Programming in JavaScript | dev.to | 2022-01-08

    Fortunately, as it has been shown in this article, it’s definitely possible to use functional programming with plain JavaScript. However, if you really want to dive deeper into this paradigm while using JavaScript, you’ll probably want to use some already existing functional libraries such as Sanctuary, Fluture, Ramda and others.

  • GitHub repo hybrids

    Extraordinary JavaScript framework with unique declarative and functional architecture

    Project mention: Intro to Web Components - Full Walkthrough | reddit.com/r/css | 2021-08-16

    Another project, hybrids does a great work on allowing it to be functional instead of class.

  • GitHub repo StegCloak

    Hide secrets with invisible characters in plain text securely using passwords 🧙🏻‍♂️⭐

    Project mention: r/cryptography | reddit.com/r/cryptography | 2021-05-31

    1 https://github.com/KuroLabs/stegcloak

  • GitHub repo Fluture

    :butterfly: Fantasy Land compliant (monadic) alternative to Promises

    Project mention: Introduction to Functional Programming in JavaScript | dev.to | 2022-01-08

    Fortunately, as it has been shown in this article, it’s definitely possible to use functional programming with plain JavaScript. However, if you really want to dive deeper into this paradigm while using JavaScript, you’ll probably want to use some already existing functional libraries such as Sanctuary, Fluture, Ramda and others.

  • GitHub repo Kind

    A modern proof language (by kind-lang)

    Project mention: Rust-like memory management with dependent types | reddit.com/r/dependent_types | 2021-12-22
  • GitHub repo kefir

    A Reactive Programming library for JavaScript

    Project mention: Node.js Packages and Resources | dev.to | 2021-09-06

    Kefir.js - Reactive library with focus on high performance and low memory usage.

  • GitHub repo Mout

    Modular JavaScript Utilities

    Project mention: Node.js Packages and Resources | dev.to | 2021-09-06

    Mout - Utility library with the biggest difference between other existing solutions is that you can choose to load only the modules/functions that you need, no extra overhead.

  • GitHub repo Rambda

    Faster and smaller alternative to Ramda

    Project mention: A good online course/eBook for learning Rust in Functional style? | reddit.com/r/rust | 2021-09-16

    I usually use a libraries like this or this to have monads and "auto-curriyng" in my code in JS. It seems that Rust is indeed lacks of those libraries, the only ones which I could find are fp_rust and fp_core . Both of them are not widely used as of now

  • GitHub repo clio

    Clio is a functional, parallel, distributed programming language.

    Project mention: Clio: a functional, multi-threaded programming language that compiles to JavaScript | reddit.com/r/functionalprogramming | 2021-10-11

    I've been working on a functional programming language in the past few years and I'd like to share it with you, would be nice to have some feedback on it! The language is called "Clio" and you can find it here: https://github.com/clio-lang/clio or here: https://clio-lang.org

  • GitHub repo underscore-contrib

    The brass buckles on Underscore's utility belt

  • GitHub repo fasy

    FP iterators that are both eager and asynchronous

    Project mention: If you could change ONE thing about JS, what would it be? | reddit.com/r/JSdev | 2021-04-22

    Agreed. That's exactly why I made Fasy: https://github.com/getify/fasy :)

  • GitHub repo monio

    The most powerful IO monad implementation in JS, possibly in any language!

    Project mention: Brief Intro to Monads in JavaScript | news.ycombinator.com | 2022-01-21
  • GitHub repo scriptum

    Untyped/typed functional standard library for Javascript.

    Project mention: Is there a statically typed functional programming language that doesn't take purity so seriously? | reddit.com/r/functionalprogramming | 2021-06-01

    scriptum

  • GitHub repo bitcoin-chart-cli

    Bitcoin chart for the terminal as command line util

  • GitHub repo zebras

    Data analysis library for JavaScript built with Ramda

  • GitHub repo scramjet

    Simple yet powerful live data computation framework

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2022-01-21.

JavaScript Functional programming related posts

Index

What are some of the best open-source Functional programming projects in JavaScript? This list will help you:

Project Stars
1 lodash 51,950
2 underscore 26,281
3 ramda 21,569
4 mostly-adequate-guide 21,411
5 Functional-Light-JS 14,878
6 lazy.js 5,993
7 Sugar 4,462
8 Sanctuary 2,858
9 hybrids 2,536
10 StegCloak 2,403
11 Fluture 2,270
12 Kind 2,088
13 kefir 1,770
14 Mout 1,243
15 Rambda 1,230
16 clio 886
17 underscore-contrib 620
18 fasy 516
19 monio 392
20 scriptum 360
21 bitcoin-chart-cli 261
22 zebras 209
23 scramjet 209
Find remote jobs at our new job board 99remotejobs.com. There are 29 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
Static code analysis for 29 languages.
Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.
www.sonarqube.org