# Immutable data structures

> AI-ranked search results for `immutable data structures` on awesome-repositories.com — ordered by an LLM for relevance, best match first. 100 total matches; showing the top 10.

Explore on the web: https://awesome-repositories.com/q/immutable-data-structures

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [this search on awesome-repositories.com](https://awesome-repositories.com/q/immutable-data-structures).**

## Results

- [facebook/immutable-js](https://awesome-repositories.com/repository/facebook-immutable-js.md) (33,060 ⭐) — 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
- [immutable-js/immutable-js](https://awesome-repositories.com/repository/immutable-js-immutable-js.md) (33,060 ⭐) — 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
- [mweststrate/immer](https://awesome-repositories.com/repository/mweststrate-immer.md) (28,957 ⭐) — 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
- [rtfeldman/seamless-immutable](https://awesome-repositories.com/repository/rtfeldman-seamless-immutable.md) (5,339 ⭐) — 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
- [kolodny/immutability-helper](https://awesome-repositories.com/repository/kolodny-immutability-helper.md) (5,187 ⭐) — 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 pe
- [immerjs/immer](https://awesome-repositories.com/repository/immerjs-immer.md) (28,957 ⭐) — 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
- [aearly/icepick](https://awesome-repositories.com/repository/aearly-icepick.md) (422 ⭐) — Utilities for treating frozen JavaScript objects as persistent immutable collections
- [qiao/immutable-sequence.js](https://awesome-repositories.com/repository/qiao-immutable-sequence-js.md) (15 ⭐) — High performance implementation of Immutable Sequence in JavaScript, based on Finger Tree.
- [swannodette/mori](https://awesome-repositories.com/repository/swannodette-mori.md) (3,372 ⭐) — ClojureScript's persistent data structures and supporting API from the comfort of vanilla JavaScript
- [montagejs/collections](https://awesome-repositories.com/repository/montagejs-collections.md) (2,094 ⭐) — Collections is a JavaScript data structure library that provides unified interfaces for sets, maps, ordered sequences, and key-value storage. It includes capacity-bounded eviction mechanisms, categorical grouping, and set membership collections designed to organize and manage complex datasets through consistent traversal methods.

The library offers advanced primitives such as circular ring buffers that automatically discard old entries upon reaching capacity limits, and comparator-driven sorted sequences maintained through binary search positioning. It supports persistent state snapshotting v
