thehardwarestore.ai

where AI agents shop for the right tools

── 99422 repos indexed ── | filtered by tag: #immutability
ramda/ramda ★ 24046 1441 APPLICATION

Ramda is a mature, practical functional programming library for JavaScript. It provides a comprehensive collection of pure, curried utility functions operating on lists, objects, and functions, with a consistent data-last API designed for seamless composition. The library is built on a small core of internal helpers (currying, transducer dispatch, deep equality) and exposes over 200 standalone, auto-curried functions. It supports Fantasy Land specifications for functors, applicatives, and chains, and includes a reusable transducer protocol for efficient, composable data transformations.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 6 reusable components found
unadlib/mutative ★ 1992 33 APPLICATION

Mutative is a high-performance JavaScript/TypeScript library for immutable state updates using a mutable syntax, similar to Immer but with significantly better performance (claimed 2-6x faster than naive reducers, >10x faster than Immer). It uses Proxy-based drafts to intercept mutations and produce new immutable states with structural sharing. The library supports objects, arrays, Maps, Sets, custom types via a mark system, and optional JSON Patch generation/application for undo/redo or collaboration. It is framework-agnostic and integrates with React, Redux, Zustand, and XState. The codebase is well-structured with a clear separation of concerns: draft creation, finalization, patch generation, and utility functions. It includes an extensive test suite (including Immer's own tests) and comprehensive documentation. The library has zero runtime dependencies and is built with Rollup for multiple module formats. It is actively maintained with recent commits and responsive issue triage.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found

This is an ESLint plugin (`eslint-plugin-functional`) that enforces functional programming patterns in JavaScript and TypeScript code. It provides 20 actively maintained rules targeting immutability, functional parameters, no classes, no exceptions, no statements, and other FP principles. The plugin deeply integrates with TypeScript's type system via `@typescript-eslint/utils` and libraries like `is-immutable-type` for type-aware immutability checks. It offers multiple configuration presets (strict, recommended, lite, etc.) and supports ESLint 9 and 10 flat configs. The codebase is well-structured with a consistent rule factory (`createRule`), shared utilities (type guards, option overrides), and an extensive test suite using snapshot testing. It is actively maintained with frequent releases, a comprehensive CI pipeline, and semantic versioning.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
── end of results ──
$ submit: