10 Repos
Collections and containers designed to preserve previous versions of themselves when modified to ensure immutability.
Distinct from Persistent Data Structures: The provided candidates are either part of awesome-lists or irrelevant niches (Go resources, voice-based workflows). This requires a primary library category under Programming Languages & Runtimes.
Explore 10 awesome GitHub repositories matching programming languages & runtimes · Persistent Data Structures. Refine with filters or upvote what's useful.
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
Provides a comprehensive library of persistent data structures for JavaScript that prevent direct mutation.
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
Implements persistent data structures that use structural sharing to efficiently preserve previous versions of state.
Clojure is a general-purpose, functional programming language hosted on the Java Virtual Machine. It is a homoiconic S-expression language that represents programs as nested data structures, allowing code to be manipulated and evaluated as data. The project provides a framework for JVM interoperability, enabling the invocation of Java methods and integration with other JVM-based languages. It distinguishes itself through a persistent data structure library that uses bitmapped vector tries to manage immutable collections and a programmatic REPL for interactive software development and real-tim
Ships highly efficient immutable collections based on bitmapped vector tries to ensure stability and scalability.
go-datastructures is a collection of thread-safe and lock-free data structures designed for high-performance concurrent applications in Go. It provides a modular library of specialized algorithmic toolsets, including a lock-free collection library and an immutable data structure library. The project distinguishes itself through a suite of persistent AVL trees and hash array mapped tries that use branch-copying to preserve previous versions. It also implements non-blocking hash maps, queues, and tries that enable linearizable snapshots and concurrent updates without the use of mutual exclusion
Implements persistent data structures that preserve previous versions through branch-copying and structural sharing.
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
Provides persistent, immutable data structures where modifications create new versions while sharing existing data.
AlgoXY ist ein Lehrbuch für funktionale Programmierung und eine technische Publikation, die als digitales LaTeX-Buch produziert wurde. Es dient als Bildungsressource für Programmierung und als Bibliothek mit Fokus auf funktionale Algorithmen und Datenstrukturen. Das Projekt bietet eine Sammlung persistenter Datenstrukturen, wie Bäume und Heaps, die für unveränderliches Zustandsmanagement konzipiert sind. Es enthält eine Reihe von Implementierungsübungen und verifizierten Lösungen, um grundlegende Informatikkonzepte durch die praktische Anwendung funktionaler Logik zu vermitteln. Der Inhalt deckt den Entwurf persistenter Datenstrukturen und die Implementierung funktionaler Algorithmen zum Sortieren und Suchen ab. Diese Materialien werden als professionell gesetzte technische Publikation bereitgestellt, die mit einem LaTeX-Build-System erstellt wurde.
Provides a collection of containers designed to preserve previous versions of themselves using structural sharing and immutability.
Implements persistent data structures with structural sharing for immutable collections that preserve prior versions.
Diese Bibliothek bietet eine Sammlung spezialisierter Datenstrukturen für die Swift-Sprache, die die Standardbibliothek um fortgeschrittene Containertypen erweitern. Sie enthält Implementierungen für Double-Ended Queues unter Verwendung von Ring-Buffern, Priority Queues basierend auf Min-Max-Heaps sowie speichereffiziente Bit-Set- und Bit-Array-Speicherung für boolesche Werte. Das Projekt bietet geordnete Sammlungen, die Elemente mittels B-Tree-Implementierungen in sortierter Reihenfolge halten, sowie persistente Sets und Dictionaries, die komprimierte Präfix-Bäume verwenden, um Daten zwischen mutierten Kopien zu teilen. Es bietet zudem spezialisierte Container, die die Einfügereihenfolge bewahren. Die Bibliothek deckt eine Reihe von Funktionen ab, einschließlich Low-Level-Speicherverwaltung für C-Buffer und nicht-kopierbare Werte, Festkapazitätsspeicherung und die Verwendung von Robin-Hood-Hashing zur Optimierung der Speicherauslastung und Suchgeschwindigkeiten.
Implements collections and containers that preserve previous versions through structural sharing to ensure immutability.
This project provides a set of software architecture guidelines, Lisp coding standards, and functional programming patterns for Clojure development. It establishes best practices for implementing declarative logic and managing shared state through the use of persistent data structures and atomic references. The guide covers standards for documenting public APIs and organizing project directories to ensure portable library distribution. It details the application of consistent formatting and naming rules to improve source code readability and team collaboration. The scope extends to idiomatic
Advocates for the use of immutable collections to ensure thread safety and predictable performance.
Flix is a statically typed multi-paradigm programming language that combines functional, imperative, and logic programming paradigms within a single unified environment. It utilizes a constraint-driven execution environment to derive results by satisfying logical predicates rather than following linear sequential instructions. The language features a unification-based logic engine designed to solve complex computational problems through term unification and backtracking. This is supported by a core library of persistent immutable data structures that ensure side-effect free state management a
Ships a core library of persistent data structures to ensure side-effect free state management.