Fp

Top 23 Fp Open-Source Projects

  • functional-programming-jargon

    Jargon from the functional programming world in simple terms!

  • effect

    A fully-fledged functional effect system for TypeScript with a rich standard library

  • Project mention: Exploring Effect, a meta-state RxJS-like framework | dev.to | 2024-01-24

    Effect is a functional library for building and composing asynchronous, concurrent, and reactive programs in TypeScript. It focuses on providing a robust and type-safe way to manage side effects in your programs.

  • 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
  • Shapeless

    Generic programming for Scala

  • Project mention: Question regarding Recursive datatypes and cats typeclasses (Haskell to Scala) | /r/scala | 2023-07-06

    Scala 2-only: * Shapeless (there is Shapeless for Scala 3 but less often needed as basic things are in Scala 3)

  • returns

    Make your functions return something meaningful, typed, and safe!

  • Project mention: This Week in Python (February 23, 2024) | dev.to | 2024-02-23

    returns – Make your functions return something meaningful, typed, and safe

  • FS2

    Compositional, streaming I/O library for Scala

  • Project mention: Ask HN: What are some of the most elegant codebases in your favorite language? | news.ycombinator.com | 2023-06-17
  • 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.

  • doobie

    Functional JDBC layer for Scala.

  • 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
  • cats-effect

    The pure asynchronous runtime for Scala

  • Project mention: A question about Http4s new major version | /r/scala | 2023-04-25

    Those benchmarks are using a snapshot version of cats-effect. I don't know where that one comes from, but previously they were using a snapshot from https://github.com/typelevel/cats-effect/pull/3332 which had some issues (3.5-6581dc4, 70% performance degradation), which have since been resolved (see that PR for more info and comparative benchmarks).

  • Monix

    Asynchronous, Reactive Programming for Scala and Scala.js.

  • Project mention: Ask HN: What are some of the most elegant codebases in your favorite language? | news.ycombinator.com | 2023-06-17
  • scalajs-react

    Facebook's React on Scala.JS

  • Rambda

    Faster and smaller alternative to Ramda

  • frunk

    Funktional generic type-level programming in Rust: HList, Coproduct, Generic, LabelledGeneric, Validated, Monoid and friends.

  • Project mention: Apply generic function to every tuple element | /r/learnrust | 2023-05-22

    So rust doesn't support variadics, but I have heard some murmurings around the topic. In the meantime, you can still do a lot with recursive tras. The frunk crate makes working with them a lot easier: In this case

  • You-Dont-Need-Loops

    Avoid The One-off Problem, Infinite Loops, Statefulness and Hidden intent.

  • monio

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

  • ts-belt

    🔧 Fast, modern, and practical utility library for FP in TypeScript.

  • kotlin-result

    A multiplatform Result monad for modelling success or failure operations.

  • Project mention: JEP draft: Exception handling in switch | news.ycombinator.com | 2024-04-19

    Author here. I have no idea what you could possibly mean with this comment. The coroutineBinding implementation correctly uses the coroutines API for parallel decomposition of Result bindings, exactly how the Kotlin Corotines guide tells you to (backed by a [Mutex](https://github.com/michaelbull/kotlin-result/blob/master/kot...)). The coroutineBinding isn't even the main selling point of the library, you can use it without using this feature entirely.

    Please could you elaborate on what "looking thread safe" means to you? The only portion of the library that supports concurrency *is* thread safe - the unit tests prove it and the use of concurrency primitives such as Kotlin's Mutex are indicative of this. I truly have no idea how you've judged the entirely of the lbirary on whether it's "thread safe" when there is a single function that's related to concurrency and it is very clearly using concurrency primitives.

  • frameless

    Expressive types for Spark.

  • metalang99

    Full-blown preprocessor metaprogramming

  • Project mention: How to convert an enum to string in C++ | news.ycombinator.com | 2023-09-30

    There are also other approaches. Macro variants making use of `__VA_ARGS__` would be probably the best trade-off. If you want a slightly more ergonomic syntax, something like Metalang99 [1] will help (and the author even wrote a post about this exact subject [2]). Codegen is another option which may work better than other options depending on the situation and exact implementation strategy. And there is always the Reflection TS [3], which may or may not be incorporated to C++26...

    [1] https://github.com/Hirrolot/metalang99

    [2] https://hirrolot.github.io/posts/pretty-printable-enumeratio...

    [3] https://en.cppreference.com/w/cpp/experimental/reflect

  • eslint-plugin-functional

    ESLint rules to disable mutation and promote fp in JavaScript and TypeScript.

  • FxTS

    A functional programming library for TypeScript/JavaScript

  • Project mention: A hidden power tool for arrays in TS | dev.to | 2024-01-25

    This library is FxTS.

  • classes

    Smart, pythonic, ad-hoc, typed polymorphism for Python

  • Bow

    🏹 Bow is a cross-platform library for Typed Functional Programming in Swift

  • boxed

    Essential building-blocks for functional & safe TypeScript code

  • Project mention: Boxed: Functional Types and Utilities for TypeScript | news.ycombinator.com | 2023-05-19
  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub 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).

Fp related posts

Index

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

Project Stars
1 functional-programming-jargon 18,524
2 effect 4,370
3 Shapeless 3,363
4 returns 3,280
5 FS2 2,321
6 mo 2,245
7 doobie 2,117
8 cats-effect 1,954
9 Monix 1,920
10 scalajs-react 1,634
11 Rambda 1,592
12 frunk 1,198
13 You-Dont-Need-Loops 1,052
14 monio 1,040
15 ts-belt 1,034
16 kotlin-result 936
17 frameless 869
18 metalang99 765
19 eslint-plugin-functional 729
20 FxTS 719
21 classes 641
22 Bow 640
23 boxed 610

Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com