awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
mweststrate avatar

mweststrate/immer

0
View on GitHub↗
immerjs.github.io/immer↗

Immer

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 capabilities support the implementation of state history, such as undo and redo functionality, by maintaining snapshots of the application state.

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Features

  • Draft-Based Mutations - Provides a draft-based mutation model that allows using mutable syntax to produce immutable state updates.
  • Structural Sharing - Utilizes structural sharing to reuse unchanged branches of the state tree, minimizing memory allocations.
  • State Containers - Provides a state container mechanism that ensures data immutability through a copy-on-write process.
  • Immutable State Utilities - Provides utilities to generate new versions of state trees by applying changes to a temporary draft.
  • Copy-On-Write Proxying - Implements a copy-on-write mechanism via JavaScript Proxies to ensure data immutability during state updates.
  • Proxy-Based State Handlers - Uses JavaScript Proxies to track changes to objects and produce a new immutable state result.
  • Deep Object Manipulations - Enables deep cloning and manipulation of nested objects and arrays without manual spread operators.
  • Finalization-Based State Commitment - Computes the final immutable state by applying recorded mutations once the producer function completes.
  • Predictable State Containers - Ensures predictable state transitions by enforcing an immutable update flow, facilitating reliable data debugging.
  • Recursive Proxy Wrapping - Dynamically wraps nested objects in proxies as they are accessed to enable deep immutable updates.
  • Persistent Data Structures - Immutable state management using copy-on-write mechanisms.
28,957 estrellas·870 forks·JavaScript·MIT·4 vistas

Historial de estrellas

Gráfico del historial de estrellas de mweststrate/immerGráfico del historial de estrellas de mweststrate/immer

Alternativas open-source a Immer

Proyectos open-source similares, clasificados según cuántas características comparten con Immer.
  • immerjs/immerAvatar de immerjs

    immerjs/immer

    28,957Ver en GitHub↗

    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 modificatio

    JavaScriptimmutableimmutablesreducer
    Ver en GitHub↗28,957
  • facebook/immutable-jsAvatar de facebook

    facebook/immutable-js

    33,060Ver en GitHub↗

    This is a persistent data structure library for JavaScript that provides collections which prevent the direct mutation of objects and arrays. It serves as an immutable state management tool and functional programming utility, ensuring that data remains unchanged after creation to simplify change detection and state tracking. The library enables the maintenance of application state by producing new versions of data structures during updates. It focuses on efficient data comparison by checking actual content instead of memory references and supports a functional programming workflow to prevent

    TypeScript
    Ver en GitHub↗33,060
  • reduxjs/redux-toolkitAvatar de reduxjs

    reduxjs/redux-toolkit

    11,213Ver en GitHub↗

    Redux Toolkit is a state management toolkit and store configurator designed to simplify the development of Redux applications by reducing boilerplate code. It functions as an immutable state manager and a centralized store configuration system that provides a streamlined workflow for managing global application state. The project distinguishes itself through an automated async action orchestrator that manages the lifecycle of promises by automatically dispatching pending, fulfilled, and rejected actions. It also acts as a normalized state organizer, providing tools to structure complex relati

    TypeScript
    Ver en GitHub↗11,213
  • immutable-js/immutable-jsAvatar de immutable-js

    immutable-js/immutable-js

    33,060Ver en GitHub↗

    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
    Ver en GitHub↗33,060
Ver las 30 alternativas a Immer→

Preguntas frecuentes

¿Qué hace mweststrate/immer?

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.

¿Cuáles son las características principales de mweststrate/immer?

Las características principales de mweststrate/immer son: Draft-Based Mutations, Structural Sharing, State Containers, Immutable State Utilities, Copy-On-Write Proxying, Proxy-Based State Handlers, Deep Object Manipulations, Finalization-Based State Commitment.

¿Qué alternativas de código abierto existen para mweststrate/immer?

Las alternativas de código abierto para mweststrate/immer incluyen: immerjs/immer — Immer is an immutable state management library used to create new versions of data structures. It allows the… facebook/immutable-js — This is a persistent data structure library for JavaScript that provides collections which prevent the direct mutation… reduxjs/redux-toolkit — Redux Toolkit is a state management toolkit and store configurator designed to simplify the development of Redux… immutable-js/immutable-js — Immutable.js is a library of persistent data structures and a functional state management toolkit. It provides a… pmndrs/zustand — Zustand is a state management library that provides a centralized store for managing shared application data. It… immerjs/use-immer — use-immer is a React hook library that provides an immutable state hook for updating complex state objects. It…