22 रिपॉजिटरी
Libraries providing persistent and immutable data types to prevent side effects.
Explore 22 awesome GitHub repositories matching part of an awesome list · Immutable Data Structures. Refine with filters or upvote what's useful.
Guava is a Java standard library extension and utility toolkit that provides optimized data structures, concurrency tools, and core extensions. It serves as a comprehensive set of helpers for Java development, focusing on reducing repetitive boilerplate logic. The project is distinguished by its specialized implementations of immutable collections, which ensure thread safety and data consistency by preventing accidental modification. It also includes a dedicated graph data structure library for modeling and traversing networks of interconnected nodes and edges, alongside advanced collection t
Produces high-performance read-only versions of standard Java collections to prevent accidental modification.
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 collection of persistent and immutable data structures for JavaScript.
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
Provides a suite of immutable data structures that transform plain JavaScript objects and arrays into persistent collections.
Ramda is a functional JavaScript standard library and toolset for immutable data transformation and composition. It provides a comprehensive suite of pure utility functions designed to enable declarative data processing pipelines. The library is distinguished by its use of automatic function currying and a data-last argument order. These design patterns allow multi-argument functions to be partially applied, simplifying the construction of processing chains where data is passed through a sequence of operations. The toolkit covers broad data manipulation capabilities, including list processin
Ensures data structures are transformed without mutation to prevent side effects in application state.
Draft-js is a framework for building customizable rich text editors within React applications. It functions as a content editable framework that separates the underlying data model from the visual rendering layer, acting as a rich text content engine to manage complex text data and formatting. The project utilizes an immutable state management system to ensure consistent updates and predictable undo history. It manages editor state through persistent data structures, providing an immutable data state manager to prevent accidental mutation. The framework includes capabilities for high perform
Provides methods for converting immutable data structures back into standard JavaScript arrays and objects.
Functional-Light-JS is a JavaScript functional programming library designed to implement functional patterns within JavaScript applications. It serves as a toolkit for declarative data processing, immutable data management, and the construction of complex logic through higher-order functions. The library focuses on a pragmatic implementation of functional programming, providing utilities for curried argument application and function composition. It emphasizes the use of pure functions to calculate state updates and manage application data without side effects. The project covers broad capabi
Provides utilities and structures for managing application state without mutation to prevent side effects.
This project is a Java annotation processing framework and source code generator designed to automate repetitive boilerplate and reduce manual coding errors. It functions as a toolkit for building custom annotation processors that produce source code, metadata, and type definitions during the compilation process. The framework specifically automates the creation of immutable value types with built-in equality and hashing logic, as well as the generation of factory implementations for dependency injection. It also handles the automated production of service provider configuration files to enab
Generates immutable value classes featuring built-in equality and hashing logic to ensure data consistency.
30 Seconds of Python is a curated collection of short, reusable Python code snippets designed for quick reference and immediate reuse. It provides an interactive browser that lets you explore snippets organized by tags, search across names and descriptions, and copy code to your clipboard with a single click. The collection covers a broad range of common programming tasks, including list and dictionary operations, string formatting and manipulation, date and time calculations, and color format conversion. It also includes utilities for data transformation, such as converting between case styl
Provides a snippet to create lightweight, immutable data records with named field access.
This is a browser-based Tetris game built with React, using Redux and Immutable.js to manage all game state in a single immutable store. The application renders the game board, next-block preview, and score display as React components, with state transitions that are predictable and support time-travel debugging through the Redux DevTools Extension. The game distinguishes itself through several integrated capabilities. It automatically adapts between keyboard and touch controls based on the user's input device, with configurable repeat rates for responsive gameplay. A persistence layer serial
Uses Immutable.js persistent data structures to prevent accidental mutation and simplify state comparison.
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
Implements a persistent FIFO queue where every operation returns a new version of the structure.
This is an interactive Python tutorial delivered as a collection of Jupyter notebooks. It is designed as a structured learning path for beginners, teaching fundamental language concepts through a sequence of lessons that combine explanatory text with runnable code cells and embedded practice exercises. Each notebook is a self-contained unit that introduces a topic, demonstrates it with a minimal code example, and then asks the learner to write code themselves, receiving immediate feedback from the browser-based execution environment. The curriculum is built on a progressive concept-stacking mo
Teaches creating named tuples for readable, self-documenting immutable data records.
Concurrent Ruby is a comprehensive concurrency toolkit for the Ruby language that provides thread-safe data structures, synchronization primitives, and asynchronous execution patterns. It implements core concurrency abstractions including an actor model framework where isolated actors communicate through asynchronous message passing, a future and promise system for composing non-blocking operations, and thread pool executors that manage reusable worker threads for concurrent task execution. The library distinguishes itself through a broad set of coordination mechanisms that go beyond basic th
Creates structs with fields set at construction that cannot be changed, ensuring thread safety.
Cats एक Scala फंक्शनल प्रोग्रामिंग लाइब्रेरी और टाइप क्लास लाइब्रेरी है जिसे बीजगणितीय पैटर्न और फंक्शनल एब्स्ट्रैक्शंस को लागू करने के लिए डिज़ाइन किया गया है। यह इंटरफेस का एक मानकीकृत सेट और फंक्शनल रैपर्स व कंटेनर्स का एक मॉड्यूलर टूलकिट प्रदान करता है ताकि विभिन्न टाइप्स में एड-हॉक पॉलीमॉर्फिज्म और जेनेरिक प्रोग्रामिंग को सक्षम किया जा सके। यह प्रोजेक्ट एक फंक्शनल एब्स्ट्रैक्शन स्टैंडर्ड के रूप में कार्य करता है, जो नेस्टेड इफेक्टफुल कॉन्टेक्स्ट को कंपोज़ करने और एक ही पाइपलाइन के भीतर कई कम्प्यूटेशनल साइड इफेक्ट्स को संभालने के लिए एक मोनाड ट्रांसफॉर्मर सूट प्रदान करता है। यह प्रोग्राम लॉजिक को डेटा स्ट्रक्चर्स के रूप में प्रस्तुत करके एम्बेडेड डोमेन-विशिष्ट भाषाओं के निर्माण को सक्षम बनाता है जिन्हें उनकी परिभाषाओं से अलग से इंटरप्रेट किया जाता है। यह लाइब्रेरी व्यापक क्षमता क्षेत्रों को कवर करती है जिसमें मानों को संयोजित और कम करने के लिए बीजगणितीय डेटा मैनिपुलेशन, टाइप-सेफ स्टेट मैनेजमेंट और एरर एक्यूमुलेशन व रिकवरी को औपचारिक बनाने के लिए फंक्शनल एरर हैंडलिंग शामिल है। यह इफेक्टफुल कम्प्यूटेशन मैनेजमेंट और फंक्शनल क्षमताओं के साथ स्टैंडर्ड कलेक्शन टाइप्स के विस्तार के लिए भी उपकरण प्रदान करता है। इस लाइब्रेरी में यह सुनिश्चित करने के लिए बीजगणितीय लॉ वैलिडेशन के तंत्र शामिल हैं कि टाइप क्लास इंस्टेंस गणितीय गुणों का पालन करते हैं।
Implements high-performance immutable sequences with constant-time appending and concatenation.
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
Provides a mechanism to check whether a specific object or array is an immutable structure.
यह प्रोजेक्ट Scala में स्वच्छ, मुहावरेदार (idiomatic) और बनाए रखने योग्य कोड लिखने के लिए क्यूरेटेड दिशानिर्देशों और मैनुअल का एक संग्रह है। यह Scala कोडिंग मानकों, कार्यात्मक प्रोग्रामिंग डिज़ाइन और एंटरप्राइज़ सॉफ़्टवेयर आर्किटेक्चर के लिए एक व्यापक गाइड के रूप में कार्य करता है। रिपॉजिटरी थ्रेड सुरक्षा सुनिश्चित करने के लिए एक्टर्स, फ्यूचर्स और थ्रेड पूल के पैटर्न सहित समवर्ती प्रबंधन (concurrency management) के लिए विशिष्ट रणनीतियां प्रदान करती है। इसमें रनटाइम दक्षता में सुधार करने के लिए मेमोरी आवंटन को कम करने और कचरा संग्रहण (garbage collection) दबाव को प्रबंधित करने पर केंद्रित एक प्रदर्शन ऑप्टिमाइज़ेशन मैनुअल भी शामिल है। गाइड एप्लिकेशन आर्किटेक्चर, टाइप-सेफ त्रुटि प्रबंधन और अपरिवर्तनीय डेटा संरचनाओं के उपयोग सहित क्षमताओं की एक विस्तृत श्रृंखला को कवर करते हैं। यह मानकीकृत नामकरण सम्मेलनों, मॉड्यूलर ट्रेट डिज़ाइन, और बैक-प्रेशर व डिमांड सिग्नलिंग के कार्यान्वयन के माध्यम से सॉफ़्टवेयर गुणवत्ता आश्वासन को भी संबोधित करता है।
Establishes standards for case class immutability and structure to ensure data integrity.
Janet is a Lisp-based dynamic programming language featuring a register-based bytecode virtual machine and an embeddable scripting engine. It functions as a fiber-based concurrency runtime and includes a parsing engine based on Parsing Expression Grammars. The project is distinguished by its ability to be integrated into C or C++ applications via a minimal header interface. It utilizes a Lisp-style macro system for compile-time code transformation and employs prototype-based table inheritance for object-oriented behavior. The runtime covers a broad set of capabilities, including asynchronous
Enables the creation and slicing of tuples and arrays to manage ordered, read-only data.
Defines case classes with immutable constructor parameters and uses the copy constructor for changes to prevent hash-related bugs.
Persistent/Immutable/Functional data structures for Python
Provides persistent, immutable, and functional data structures.
A high-performance immutable mapping type for Python.
Offers an efficient immutable mapping type for Python.
An efficient, immutable, persistent mapping object
Implements an efficient, immutable, and persistent mapping object.