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 first results are facebook/immutable-js (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), immutable-js/immutable-js (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) and mweststrate/immer (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). rtfeldman/seamless-immutable and kolodny/immutability-helper round out the shortlist. Compare the match explanations and check the project documentation against your requirements.

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
  • liuxinyu95/algoxyliuxinyu95 avatar

    liuxinyu95/AlgoXY

    6,325View on GitHub↗

    AlgoXY is a functional programming educational book and technical publication produced as a LaTeX digital book. It serves as a programming education resource and library focused on functional algorithms and data structures. The project provides a collection of persistent data structures, such as trees and heaps, designed for immutable state management. It includes a series of implementation exercises and verified answers to teach core computer science concepts through the practical application of functional logic. The content covers the design of persistent data structures and the implementa

    This repository provides educational functional data structures and persistent algorithms written in LaTeX and Haskell, making it a learning resource rather than a JavaScript or TypeScript collection library for application development.

    TeXPersistent Data StructuresStructural SharingImmutable Data Structures
    View on GitHub↗6,325
  • kotlin/kotlinx.collections.immutableKotlin avatar

    Kotlin/kotlinx.collections.immutable

    1,409View on GitHub↗

    Kotlinx.collections.immutable is a persistent data structure library for Kotlin that provides immutable lists, sets, and maps for state management. It enforces strict immutability by exposing read-only interfaces that block unauthorized modifications at compile time, while persistent structural sharing allows modified copies to efficiently reuse underlying memory storage with the original collection. Multiple insertions and removals can be batched through temporary mutable builder interfaces to instantly produce new persistent collections without intermediate allocations. Additionally, stand

    This is a persistent data structure library built specifically for Kotlin rather than JavaScript or TypeScript as requested.

    KotlinPersistent Data StructuresStructural SharingPersistent Structural Memory Sharing
    View on GitHub↗1,409
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
facebook/immutable-js33.1KTypeScriptMITJun 17, 2026
immutable-js/immutable-js33.1KTypeScriptMITJun 14, 2026
mweststrate/immer
29K
JavaScript
MIT
Jun 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