A TypeScript-focused functional programming utility library designed for use with R.pipe and strict currying.
Rambda is a functional programming utility library specifically designed for TypeScript. It provides a collection of curried functions optimized for building data transformation pipelines using `R.pipe`. The library solves the challenge of mixing functional programming patterns with TypeScript's type system by offering predictable, type-safe methods.
TypeScript developers who want to write functional-style code with reliable type inference, particularly those building data transformation pipelines or working with immutable data structures.
Developers choose Rambda for its strict TypeScript focus, curated method set that avoids complexity, and predictable behavior within `R.pipe` chains—offering better type inference than alternatives like Ramda.
Typescript focused FP library similar to Remeda and Ramda
All methods are tested to deliver correct types within R.pipe and R.pipeAsync chains, ensuring reliable type inference for data transformations, as highlighted in the README's examples comparing it favorably to Ramda.
Every method is curried and intended for use inside R.pipe, providing a consistent and predictable functional programming pattern that simplifies building data transformation chains.
Includes only the most useful methods with obvious behavior from their names, avoiding complex logic like R.cond or R.ifElse that require frequent documentation lookups, which keeps the API lean and intuitive.
Supports dot notation for R.path (e.g., 'a.b') and comma notation for R.pick/R.omit, improving code readability over array-based syntax, as demonstrated in the README examples.
Omits many utilities such as R.cond, R.ifElse, R.difference, and generic methods like curry and assoc, which the README admits are hard to express in TypeScript or add little value, potentially requiring custom implementations.
Enforces currying and pipe-based usage exclusively (e.g., R.filter(fn)(list) not R.filter(fn, list)), which can be restrictive and unintuitive for developers accustomed to direct function calls or other compositional styles.
From version 10.0.0, it is no longer a drop-in replacement for Ramda, as stated in the README, causing migration challenges and requiring code adjustments for teams switching from Ramda.
The focus on TypeScript and pipe chains means it may not integrate seamlessly with non-functional codebases or libraries that expect different patterns, limiting its versatility in mixed environments.
rambda is an open-source alternative to the following products:
Ramda is a practical functional programming library for JavaScript that emphasizes immutability and side-effect free functions with a data-last API design.
Remeda is a utility library for TypeScript and JavaScript that provides type-safe data manipulation functions with a focus on functional programming patterns.
Radashi appears to be a Japanese software product, but I cannot confidently identify its specific purpose or provide verified information about it.
A modern JavaScript utility library delivering modularity, performance, & extras.
JavaScript's utility _ belt
:ram: Practical functional Javascript
🎨 The exhaustive Pattern Matching library for TypeScript, with smart type inference.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.