awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
kolodny avatar

kolodny/immutability-helper

0
View on GitHub↗
5,187 stars·185 forks·TypeScript·MIT·21 views

Immutability Helper

immutability-helper is an immutable data manipulation library and object utility used for creating modified copies of objects and arrays. It functions as a command-based state manager and functional data transformer that ensures original source data remains unchanged during updates.

The library distinguishes itself by using a declarative set of mutation commands and descriptors to specify changes. It preserves reference equality by returning the original object reference if no actual changes occur during the mutation process.

It provides capabilities for deep cloning nested structures and performing complex state mutations on objects, arrays, maps, and sets. The system supports merging immutable objects and applying custom transformation logic through a pluggable mutation engine.

Features

  • Command-Based Immutable Mutations - Provides a command-based system for creating modified copies of data structures without mutating the original.
  • Command-Based State Mutation - Uses a declarative set of mutation commands and descriptors to apply data transformations to the state.
  • Immutable Array Updates - Performs array operations on copies of arrays to avoid mutating the original source data.
  • Immutable Element Updates - Updates data structures using a command-based syntax that returns new copies to preserve immutability.
  • JSON Object Deep Cloning - Creates deep copies of nested structures to ensure mutations do not affect original source references.
  • Immutable Value Transformers - Executes user-defined functions on specific values to produce new immutable versions of the data structure.
  • Structure-Preserving Transformations - Applies mutation commands and custom logic to transform data while strictly preserving the original state.
  • Functional Transformations - Applies custom transformation logic using pure functions to produce new immutable states from data structures.
  • Immutable Data Libraries - Serves as a general-purpose library for creating modified copies of objects and arrays while ensuring original data remains unchanged.
  • Deep Copying Libraries - Provides utilities for producing recursive deep copies of nested structures to prevent side effects during modification.
  • Immutable Data Structures - Ensures the original data remains unmodified by creating copies of objects, arrays, maps, or sets.
  • Complex State Mutation Commands - Ships built-in commands to perform complex operations like splicing and toggling within immutable structures.
  • Command Objects - Uses descriptive command objects to modify deep data structures without requiring manual cloning.
  • Data Transformation Commands - Implements a declarative command system for specifying modifications to immutable data structures.
  • Immutable Object Merging - Combines properties from source objects into new immutable copies without altering the original data.
  • Reference Equality Preservation - Returns the original object reference if no actual changes occur, enabling efficient state change detection.
  • Immutable Update Utilities - Ships a set of utilities for merging, toggling, and updating complex data structures without side effects.
  • Immutable State Copies - Implements patterns for creating modified copies of state objects to ensure immutable updates of complex data structures.
  • Mutation Engines - Provides a pluggable engine that allows registering custom functions to handle specific data keys during updates.
  • Custom Mutation Registries - Allows registering custom functions that apply domain-specific transformation logic during the update process.
  • Custom Update Commands - Supports registering custom transformation functions to the update engine for specialized data mutation logic.
  • Function Registries - Uses a lookup table to map identifiers to user-defined functions for specialized data transformations.
  • Reference Equality Preservation - Ensures the original object reference is returned if no changes occur, facilitating efficient change detection.
  • Poly-Type Copying Strategies - Applies different cloning and mutation mechanisms tailored to objects, arrays, maps, and sets.
  • Reference Equality Workflows - Manages data changes while preserving reference equality and providing a history of unmodified state snapshots.
  • Type-Safe Data Handling - Handles different data types using a consistent, type-safe approach to ensure correct mutation strategies.
  • Mutation Mappers - Maps specific data keys to specialized transformation functions through a custom command registry.

Star history

Star history chart for kolodny/immutability-helperStar history chart for kolodny/immutability-helper

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Immutability Helper

Similar open-source projects, ranked by how many features they share with Immutability Helper.
  • rtfeldman/seamless-immutablertfeldman avatar

    rtfeldman/seamless-immutable

    5,339View on GitHub↗

    This is a JavaScript immutable data library used to create objects and arrays that prevent direct mutation. It serves as an immutable state manager and object wrapper designed to ensure data consistency by blocking modifications while remaining compatible with standard JavaScript syntax. The library functions as a converter that transforms standard mutable data into frozen structures and can convert them back for local modifications. This allows for a workflow where data is switched between immutable and mutable versions to perform bulk edits before locking the state again. The project provi

    JavaScript
    View on GitHub↗5,339
  • louthy/language-extlouthy avatar

    louthy/language-ext

    7,057View on GitHub↗

    language-ext is a functional programming framework for C# that provides a suite of immutable data structures and monadic types. It enables the implementation of pure functional programming patterns, utilizing containers to manage side effects, optional values, and error handling. The library is distinguished by its advanced concurrency and state management tools, including a software transactional memory system and lock-free atomic references. It also provides specialized utilities for distributed systems, such as vector clocks for causality tracking and deterministic data conflict resolution

    C#
    View on GitHub↗7,057
  • elm/compilerelm avatar

    elm/compiler

    7,794View on GitHub↗

    This project is a functional programming compiler and JavaScript transpiler that transforms a statically typed language into optimized JavaScript for web browsers. It serves as a frontend architecture framework, providing a static type system and a package manager that enforces semantic versioning. The compiler uses a type-checking engine with automatic type inference to prevent runtime errors and guide code refactoring. It implements a structural pattern for managing application state and rendering user interfaces through a virtual DOM, utilizing immutable data and purity-based state transit

    Haskellcompilerelm
    View on GitHub↗7,794
  • facebook/reactfacebook avatar

    facebook/react

    245,669View on GitHub↗

    React is a JavaScript library for building user interfaces based on a component-driven architecture and unidirectional data flow.

    JavaScriptjavascriptuifrontend
    View on GitHub↗245,669
See all 30 alternatives to Immutability Helper→

Frequently asked questions

What does kolodny/immutability-helper do?

immutability-helper is an immutable data manipulation library and object utility used for creating modified copies of objects and arrays. It functions as a command-based state manager and functional data transformer that ensures original source data remains unchanged during updates.

What are the main features of kolodny/immutability-helper?

The main features of kolodny/immutability-helper are: Command-Based Immutable Mutations, Command-Based State Mutation, Immutable Array Updates, Immutable Element Updates, JSON Object Deep Cloning, Immutable Value Transformers, Structure-Preserving Transformations, Functional Transformations.

What are some open-source alternatives to kolodny/immutability-helper?

Open-source alternatives to kolodny/immutability-helper include: rtfeldman/seamless-immutable — This is a JavaScript immutable data library used to create objects and arrays that prevent direct mutation. It serves… louthy/language-ext — language-ext is a functional programming framework for C# that provides a suite of immutable data structures and… elm/compiler — This project is a functional programming compiler and JavaScript transpiler that transforms a statically typed… facebook/react — React is a JavaScript library for building user interfaces based on a component-driven architecture and unidirectional… sairyss/domain-driven-hexagon — This project is a TypeScript-based architectural framework designed to implement domain-driven design and hexagonal… google/guava — Guava is a Java standard library extension and utility toolkit that provides optimized data structures, concurrency…