Functional

Top 23 Functional Open-Source Projects

  • RxSwift

    Reactive Programming in Swift

  • Project mention: RxSwift – Reactive Extensions for Swift | news.ycombinator.com | 2023-07-17
  • bubbletea

    A powerful little TUI framework 🏗

  • Project mention: Harlequin: SQL IDE for Your Terminal | news.ycombinator.com | 2024-01-05
  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • lo

    💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)

  • Project mention: Go 1.22 Release Notes | news.ycombinator.com | 2024-02-06

    On the other hand, I advise you NOT to use this kind of library and write simple, fast go code most of the time, with the occasional generics helper. Why the hell would I clutter my code with, for example: https://github.com/samber/lo?tab=readme-ov-file#fromentries-...

  • fantasy-land

    Specification for interoperability of common algebraic structures in JavaScript

  • Project mention: Functional Programming 1 | news.ycombinator.com | 2023-08-16

    2. https://github.com/fantasyland/fantasy-land (A bit heavy on jargon)

    Note there is a python version of Ramda available on pypi and there’s a lot of FP tidbits inside JAX:

    3. https://pypi.org/project/ramda/ (Worth making your own version if you want to learn, though)

    4. For nested data, JAX tree_util is epic: https://jax.readthedocs.io/en/latest/jax.tree_util.html and also their curry implementation is funny: https://github.com/google/jax/blob/4ac2bdc2b1d71ec0010412a32...

    Anyway don’t put FP on a pedestal, main thing is to focus on the core principles of avoiding external mutation and making helper functions. Doesn’t always work because some languages like Rust don’t have legit support for currying (afaik in 2023 August), but in those cases you can hack it with builder methods to an extent.

    Finally, if you want to understand the middle of the midwit meme, check out this wiki article and connect the free monoid to the Kleene star (0 or more copies of your pattern) and Kleene plus (1 or more copies of your pattern). Those are also in regex so it can help you remember the regex symbols. https://en.wikipedia.org/wiki/Free_monoid?wprov=sfti1

    The simplest example might be {0}^* in which case

    0: “” // because we use *

  • enso

    Hybrid visual and textual functional programming.

  • Project mention: Show HN: Flyde – an open-source visual programming language | news.ycombinator.com | 2024-03-07
  • cowboy

    Small, fast, modern HTTP server for Erlang/OTP.

  • jsonnet

    Jsonnet - The data templating language

  • Project mention: A Reasonable Configuration Language | news.ycombinator.com | 2024-02-04

    jsonnet[1] and kapitan[2] are the tools I currently use. Their learning curve is not optimal (and I tried to contribute to smoothen it with a jsonnet course[3] and a 'get started wit kapitan' blog post[4]), but once used to it it's hard to do without, and their combination makes them even more useful (esp. if you deploy K8s).

    In Ruud's case, Jsonnet might have been worth looking at as Hashicorp tools can be configured with json in addition to HCL. But that would have been less fun I guess ;-)

    I hope for Ruud it finds its niche, there's quite some competition in this field!

    1: https://jsonnet.org/

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Carp

    A statically typed lisp, without a GC, for real-time applications.

  • Project mention: Carp: A statically typed Lisp, without a GC, for real-time applications | news.ycombinator.com | 2024-03-11
  • Coconut

    Simple, elegant, Pythonic functional programming.

  • Project mention: Coconut: Simple, elegant, Pythonic functional programming | news.ycombinator.com | 2023-11-27
  • remeda

    A utility library for JavaScript and TypeScript.

  • Project mention: Ramda: A practical functional library for JavaScript programmers | news.ycombinator.com | 2023-08-04

    Personally I just don't think Ramda fits really well with JavaScript's mutable and often object-oriented nature. It goes against the grain too much for my taste, and it doesn't work very well with Typescript.

    In a professional setting I will probably always reach for Lodash due to it's maturity and mindshare. Personally, though, I really prefer Remeda (https://github.com/remeda/remeda) as a pragmatic and flexible API.

  • tonal

    A functional music theory library for Javascript

  • Project mention: Tonal.js: Functional music theory lib | news.ycombinator.com | 2024-04-02

    They're using objects, including arrays [1], so I think they would have been more precise to say that they're using objects and arrays as simple data structures rather than using OO features like inheritance and mutation.

    [1] https://github.com/tonaljs/tonal/blob/main/packages/chord/in...

  • pampy

    Pampy: The Pattern Matching for Python you always dreamed of.

  • gluon

    A static, type inferred and embeddable language written in Rust. (by gluon-lang)

  • Project mention: Gluon is a static, type inferred and embeddabble language written in Rust | news.ycombinator.com | 2023-07-01
  • PyPika

    PyPika is a python SQL query builder that exposes the full richness of the SQL language using a syntax that reflects the resulting query. PyPika excels at all sorts of SQL queries but is especially useful for data analysis.

  • Project mention: any recommendations for a good query builder library with good support? | /r/learnpython | 2023-07-11

    I recently started using drizzle orm and I am now looking for something similar in python, my goal is to be as close to sql syntax as possible without just passing dml commands as strings, type safety would be cool as well, I saw this one pypika but it ha a lot of open issues and no commits for a year, is there anything similar but more stable?

  • Eclipse Collections

    Eclipse Collections is a collections framework for Java with optimized data structures and a rich, functional and fluent API.

  • Project mention: Yet another introduction to Functional Programming | dev.to | 2023-07-12

    eclipse-collections for Java.

  • frontend-clean-architecture

    React + TypeScript app built using the clean architecture principles in a more functional way.

  • mo

    🦄 Monads and popular FP abstractions, powered by Go 1.18+ Generics (Option, Result, Either...)

  • Project mention: Functional Programming Library for Golang by IBM | news.ycombinator.com | 2023-08-17

    A simple alternative is the combination of:

    - https://github.com/samber/lo

    - https://github.com/samber/mo

    The split is also nice as you can choose to just use the generic convenience functions from lo without the more FP related things from mo.

  • flix

    The Flix Programming Language

  • Project mention: Learn Datalog Today | news.ycombinator.com | 2024-01-21

    you can use Datalig within Flix https://flix.dev/

  • folktale

    [not actively maintained!] A standard library for functional programming in JavaScript

  • Pyrsistent

    Persistent/Immutable/Functional data structures for Python

  • Router5

    Flexible and powerful universal routing solution

  • meta-typing

    📚 Functions and algorithms implemented purely with TypeScript's type system

  • Project mention: Functions and algorithms implemented purely with TypeScript's type system | /r/patient_hackernews | 2023-07-05
  • pocketlang

    A lightweight, fast embeddable scripting language.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
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 2024-04-02.

Functional related posts

Index

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

Project Stars
1 RxSwift 24,154
2 bubbletea 23,738
3 lo 15,293
4 fantasy-land 9,990
5 enso 7,287
6 cowboy 7,162
7 jsonnet 6,745
8 Carp 5,393
9 Coconut 3,941
10 remeda 3,890
11 tonal 3,645
12 pampy 3,503
13 gluon 3,106
14 PyPika 2,367
15 Eclipse Collections 2,353
16 frontend-clean-architecture 2,251
17 mo 2,241
18 flix 2,052
19 folktale 2,038
20 Pyrsistent 1,977
21 Router5 1,722
22 meta-typing 1,523
23 pocketlang 1,497
The modern identity platform for B2B SaaS
The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
workos.com