awesome-repositories.com
博客
MCP
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目MCP 服务器关于排名机制媒体报道
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

Immutable data structures

排名更新于 2026年7月23日

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

用 AI 发现最棒的仓库。我们将通过 AI 为您搜索最匹配的仓库。
  • facebook/immutable-jsfacebook 的头像

    facebook/immutable-js

    33,060在 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
    在 GitHub 上查看↗33,060
  • immutable-js/immutable-jsimmutable-js 的头像

    immutable-js/immutable-js

    33,060在 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
    在 GitHub 上查看↗33,060
  • mweststrate/immermweststrate 的头像

    mweststrate/immer

    28,957在 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
    在 GitHub 上查看↗28,957
  • rtfeldman/seamless-immutablertfeldman 的头像

    rtfeldman/seamless-immutable

    5,339在 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
    在 GitHub 上查看↗5,339
  • kolodny/immutability-helperkolodny 的头像

    kolodny/immutability-helper

    5,187在 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
    在 GitHub 上查看↗5,187
  • immerjs/immerimmerjs 的头像

    immerjs/immer

    28,957在 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
    在 GitHub 上查看↗28,957
  • aearly/icepickaearly 的头像

    aearly/icepick

    422在 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
    在 GitHub 上查看↗422
  • qiao/immutable-sequence.jsqiao 的头像

    qiao/immutable-sequence.js

    15在 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
    在 GitHub 上查看↗15
  • swannodette/moriswannodette 的头像

    swannodette/mori

    3,372在 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
    在 GitHub 上查看↗3,372
  • montagejs/collectionsmontagejs 的头像

    montagejs/collections

    2,094在 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
    在 GitHub 上查看↗2,094
一览前 10 名对比
仓库Star 数语言许可证最后推送
facebook/immutable-js33.1KTypeScriptMIT2026年6月17日
immutable-js/immutable-js33.1KTypeScriptMIT2026年6月14日
mweststrate/immer29KJavaScriptMIT2026年6月12日
rtfeldman/seamless-immutable5.3KJavaScriptBSD-3-Clause2021年6月25日
kolodny/immutability-helper5.2KTypeScriptMIT2020年10月15日
immerjs/immer29KJavaScriptMIT2026年6月12日
aearly/icepick422JavaScriptMIT2021年8月9日
qiao/immutable-sequence.js15JavaScript—2015年8月10日
swannodette/mori3.4KClojure—2026年3月6日
montagejs/collections2.1KJavaScriptNOASSERTION2023年11月8日

Related searches

  • a library of algorithms and data structures
  • Scala 函数式编程库
  • Data schema definition
  • Data structure library
  • JavaScript 数据结构实现合集
  • 算法与数据结构合集
  • Virtual DOM libraries
  • 防篡改的账本数据库