# unadlib/mutative

Efficient immutable updates, 2-6x faster than naive handcrafted reducer, and more than 10x faster than Immer.

Repository: https://github.com/unadlib/mutative
Canonical: https://ross.abutalabs.com/products/mutative
Homepage: http://mutative.js.org/
Language: TypeScript
License: MIT
License Family: permissive
Topics: immer, immutability, immutable, reducer, redux, mutable, mutation, state-management, mutative, react
Last push: 2026-08-13T18:02:36+00:00

## Health v2 (maintenance only)
Score: 76/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 97, release rhythm 36, longevity 100
- inputs: {"age_days": 1621, "days_push": 20, "days_rel": 346, "gap_med": 57, "n_releases_24m": 6}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1989, forks 32 (observed 2026-08-28T04:06:03.000991+00:00)

## What it is
Mutative is a TypeScript JavaScript library for efficient immutable state updates using a mutable draft API, producing new immutable structures. It is significantly faster than both handcrafted spread-based reducers and Immer, with support for JSON Patch, custom shallow copying, and optional freezing.

## Use cases
- update deeply nested redux state without spread operators
- replace immer for faster immutable updates in react apps
- write reducers with mutable-style draft code
- generate  patches from state changes
- manage large immutable data structures efficiently
- avoid accidental state mutations in reducers

## When to choose
- you need immutable updates faster than immer or handcrafted reducers
- you want concise draft-based state update syntax in react/redux
- you need  patch support or custom shallow copy control

## When to avoid
- your state updates are trivial and spread operators suffice
- you depend on immer-specific plugins or auto-freeze ecosystem tooling

## Facets
- artifact type: library
- maturity: stable
- function: state-management, serialization
- domain: web-development, frontend, developer-tools
- platform: browser, cross-platform
- tags: immutable-updates, immer-alternative, copy-on-write, -patch, redux, react, typescript, nodejs, web-server

## Member repositories
- unadlib/mutative (main) score 76

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:03.000991+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:02:57.313772+00:00, confidence not recorded.
  - readme: https://github.com/unadlib/mutative (fetched 2026-08-28T04:06:03.000991+00:00, sha 32b3e3eb027b)
  - homepage: http://mutative.js.org/ (fetched 2026-08-29T10:43:03.721477+00:00, sha bb6b6e6debef)
  - site_page: https://mutative.js.org/docs/intro (fetched 2026-08-29T10:43:03.740274+00:00, sha c3b28f37c0d7)
  - registry_npm: https://registry.npmjs.org/mutative (fetched 2026-08-29T10:43:03.742270+00:00, sha 3ca3612b892c)
  - site_page: https://mutative.js.org/blog/releases/1.0 (fetched 2026-08-29T10:43:03.737449+00:00, sha 921753a3acd6)
- Data as of 2026-08-30T08:39:29.467469+00:00.
