awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
immerjs avatar

immerjs/immer

0
View on GitHub↗
28,957 Stars·870 Forks·JavaScript·MIT·6 Aufrufeimmerjs.github.io/immer↗

Immer

Immer is an immutable state management library used to create new versions of data structures. It allows the production of new state by mutating a temporary draft instead of using manual object spreading.

The project implements structural sharing to reuse unchanged parts of a data tree between versions, which reduces memory consumption. It also functions as a JSON patch generator to calculate and output the differences between two state versions.

To ensure data integrity, the library includes a state mutation protector that freezes data structures to detect and prevent accidental modifications.

The project provides utilities for state management benchmarking and CPU profile analysis to identify performance regressions.

Features

  • Immutable State Utilities - Provides utilities for updating deeply nested data structures through an immutable interface using temporary drafts.
  • Structural Sharing - Implements structural sharing to reuse unchanged nodes between state versions, minimizing memory consumption.
  • Finalization-Based State Commitment - Commits changes from a temporary proxy draft to a final immutable state once the mutation function completes.
  • Recursive Proxy Wrapping - Dynamically wraps nested objects in proxies to track modifications deep within a data tree.
  • Proxy-Based Reactivity - Uses JavaScript Proxies to intercept property access and assignments for recording state changes.
  • State Management Libraries - A library designed for managing immutable application state via a draft-based mutation pattern.
  • Mutation Protection - Freezes data structures to detect and prevent accidental modifications to a protected immutable state.
  • JSON Patching - Calculates differences between state versions and outputs them as standard-compliant JSON patches.
  • JSON Patch Generation - Generates standard JSON patches to describe the specific differences between two versions of a data tree.
  • Memory-Efficient Data Processing Utilities - Reduces memory overhead by sharing unchanged references between different versions of a data structure.
  • Mutation Prevention - Freezes data structures to detect and block unintended modifications to a protected state.
  • Object Freezing - Recursively applies Object.freeze to produced states to prevent accidental direct mutations.
  • Immutable State Patterns - Ensures strict immutability and prevents accidental mutations by freezing the application state.
  • State Management - Utility for working with immutable state via mutation.
  • Functional Programming - Functional state management with immutability.
  • State Management - Listed in the “State Management” section of the Awesome React awesome list.

Star-Verlauf

Star-Verlauf für immerjs/immerStar-Verlauf für immerjs/immer

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Open-Source-Alternativen zu Immer

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Immer.
  • mweststrate/immerAvatar von mweststrate

    mweststrate/immer

    28,957Auf GitHub ansehen↗

    Immer is an immutable state management library for JavaScript that enables the creation of new versions of state trees. It functions as a state container that uses a proxy-based handler to ensure data immutability. The library utilizes a copy-on-write mechanism and a draft-based mutation model. This allows users to write mutating code on a temporary proxy, which the system then uses to produce a new immutable result while keeping the original state unchanged. The project covers immutable state management and complex object cloning to facilitate predictable state transitions. These capabiliti

    JavaScript
    Auf GitHub ansehen↗28,957
  • pmndrs/zustandAvatar von pmndrs

    pmndrs/zustand

    58,371Auf GitHub ansehen↗

    Zustand is a state management library that provides a centralized store for managing shared application data. It functions as a reactive container that connects application state to components, allowing them to subscribe to specific slices of data and trigger updates automatically. By utilizing selector-based data access and immutable state updates, the library ensures that components only re-render when their observed data changes, maintaining a predictable and efficient data flow. The library distinguishes itself through a pluggable, middleware-based architecture that allows for the extensi

    TypeScripthacktoberfesthooksreact
    Auf GitHub ansehen↗58,371
  • immutable-js/immutable-jsAvatar von immutable-js

    immutable-js/immutable-js

    33,060Auf GitHub ansehen↗

    Immutable.js is a library of persistent data structures and a functional state management toolkit. It provides a collection of immutable objects and arrays that prevent direct mutation to ensure predictable state management in JavaScript applications. The library utilizes structural sharing to efficiently create new versions of data without full copying and implements lazy sequence processing to chain data transformations that execute only when values are requested. It also supports batch mutation processing, allowing multiple changes to be applied to a temporary mutable copy before returning

    TypeScript
    Auf GitHub ansehen↗33,060
  • pmndrs/valtioAvatar von pmndrs

    pmndrs/valtio

    10,196Auf GitHub ansehen↗

    Valtio is a proxy-based state management library and reactive state engine that provides a mutable state store. It allows application state to be updated through direct object mutations rather than immutable patterns, using JavaScript proxies to track changes and trigger updates. For React applications, it includes a synchronization hook that ensures components re-render only when the specific properties they access are modified. The system supports reactive data derivation through computed properties that automatically update when their underlying dependencies change. It maintains reactivity

    TypeScriptmutableproxyreact
    Auf GitHub ansehen↗10,196
Alle 30 Alternativen zu Immer anzeigen→

Häufig gestellte Fragen

Was macht immerjs/immer?

Immer is an immutable state management library used to create new versions of data structures. It allows the production of new state by mutating a temporary draft instead of using manual object spreading.

Was sind die Hauptfunktionen von immerjs/immer?

Die Hauptfunktionen von immerjs/immer sind: Immutable State Utilities, Structural Sharing, Finalization-Based State Commitment, Recursive Proxy Wrapping, Proxy-Based Reactivity, State Management Libraries, Mutation Protection, JSON Patching.

Welche Open-Source-Alternativen gibt es zu immerjs/immer?

Open-Source-Alternativen zu immerjs/immer sind unter anderem: mweststrate/immer — Immer is an immutable state management library for JavaScript that enables the creation of new versions of state… pmndrs/zustand — Zustand is a state management library that provides a centralized store for managing shared application data. It… immutable-js/immutable-js — Immutable.js is a library of persistent data structures and a functional state management toolkit. It provides a… pmndrs/valtio — Valtio is a proxy-based state management library and reactive state engine that provides a mutable state store. It… effector/effector — Effector is a reactive state management library designed for building complex, event-driven applications. It functions… mobxjs/mobx — MobX is a reactive state management library and fine-grained reactivity engine. It provides an observable data store…