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
·

Immutable data structures

Ranking updated Jul 23, 2026

For immutable data structures, the strongest matches are facebook/immutable-js (This library provides persistent JavaScript collections with structural sharing), immutable-js/immutable-js (Immutable) and mweststrate/immer (Immer provides immutable state management with draft-based mutations and). rtfeldman/seamless-immutable and kolodny/immutability-helper round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.

Hand-picked open-source immutable data structures for JavaScript, Python, and Java. Compare the top repositories by stars, maintenance, and alternatives to…

Immutable data structures

Find the best repos with AI.We'll search the best matching repositories with AI.
  • facebook/immutable-jsfacebook avatar

    facebook/immutable-js

    33,060View on 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

    This library provides persistent JavaScript collections with structural sharing and TypeScript support, directly matching the requirement for immutable data structures to enforce functional programming and prevent side effects.

    TypeScriptPersistent Data StructuresStructural SharingPersistent Data Structures
    View on GitHub↗33,060
  • immutable-js/immutable-jsimmutable-js avatar

    immutable-js/immutable-js

    33,060View on 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

    Immutable.js is a persistent data structure library for JavaScript and TypeScript that uses structural sharing and lazy evaluation to provide safe, efficient immutable collections and functional state management.

    TypeScriptPersistent Data StructuresStructural Sharing
    View on GitHub↗33,060
  • mweststrate/immermweststrate avatar

    mweststrate/immer

    28,957View on GitHub↗

    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

    Immer provides immutable state management with draft-based mutations and structural sharing for JavaScript, though it focuses on state trees rather than a traditional persistent collections API.

    JavaScriptStructural SharingPersistent Data Structures
    View on GitHub↗28,957
  • 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

    This JavaScript library prevents direct mutation of objects and arrays to ensure state consistency, though it relies on standard object/array wrappers rather than full persistent data structures with structural sharing.

    JavaScriptImmutable Array UpdatesImmutable Data Structures
    View on GitHub↗5,339
  • kolodny/immutability-helperkolodny avatar

    kolodny/immutability-helper

    5,187View on GitHub↗

    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

    This TypeScript library provides immutable data manipulation and state updates using a command-based syntax to prevent side effects, though it focuses on utility functions rather than persistent collection classes.

    TypeScriptImmutable Array UpdatesImmutable Data Structures
    View on GitHub↗5,187
  • immerjs/immerimmerjs avatar

    immerjs/immer

    28,957View on 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

    Immer is a JavaScript state management library that provides immutable data updates through proxy-based draft mutation, supporting structural sharing and object freezing to prevent unintended side effects.

    JavaScriptStructural Sharing
    View on GitHub↗28,957
  • aearly/icepickaearly avatar

    aearly/icepick

    422View on GitHub↗

    Utilities for treating frozen JavaScript objects as persistent immutable collections

    This library provides utilities for treating JavaScript objects as persistent immutable collections using structural sharing, though it is more lightweight than a full-featured data structure suite.

    JavaScriptPersistent Data Structures
    View on GitHub↗422
  • qiao/immutable-sequence.jsqiao avatar

    qiao/immutable-sequence.js

    15View on GitHub↗

    High performance implementation of Immutable Sequence in JavaScript, based on Finger Tree.

    This JavaScript library implements persistent immutable sequences using finger trees for high-performance structural sharing, though it covers a narrower collection type rather than a full general-purpose immutable data structure suite.

    JavaScriptPersistent Data Structures
    View on GitHub↗15
  • swannodette/moriswannodette avatar

    swannodette/mori

    3,372View on GitHub↗

    ClojureScript's persistent data structures and supporting API from the comfort of vanilla JavaScript

    This library brings ClojureScript's persistent, immutable data structures and structural sharing to vanilla JavaScript and TypeScript environments, making it a solid fit for functional programming needs despite its Clojure roots.

    ClojurePersistent Data Structures
    View on GitHub↗3,372
  • montagejs/collectionsmontagejs avatar

    montagejs/collections

    2,094View on GitHub↗

    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

    This package provides JavaScript implementations of common data structures with idiomatic interfaces, matching the need for collection utilities even though its focus on persistence and structural sharing is less explicitly detailed.

    JavaScriptPersistent Structural Memory Sharing
    View on GitHub↗2,094
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
facebook/immutable-js33.1KTypeScriptMITJun 17, 2026
immutable-js/immutable-js33.1KTypeScriptMITJun 14, 2026
mweststrate/immer29KJavaScriptMITJun 12, 2026
rtfeldman/seamless-immutable5.3KJavaScriptBSD-3-ClauseJun 25, 2021
kolodny/immutability-helper5.2KTypeScriptMITOct 15, 2020
immerjs/immer29KJavaScriptMITJun 12, 2026
aearly/icepick422JavaScriptMITAug 9, 2021
qiao/immutable-sequence.js15JavaScript—Aug 10, 2015
swannodette/mori3.4KClojure—Mar 6, 2026
montagejs/collections2.1KJavaScriptNOASSERTIONNov 8, 2023

Related searches

  • a library of algorithms and data structures
  • a functional programming library for Scala
  • Data schema definition
  • Data structure library
  • a collection of data structures in JavaScript
  • a collection of algorithms and data structures
  • Virtual DOM libraries
  • a tamper-proof ledger database