33 个仓库
Architectural approaches that prioritize data integrity by returning new instances instead of modifying existing objects.
Distinguishing note: Focuses on the architectural pattern of immutability rather than specific data storage.
Explore 33 awesome GitHub repositories matching software engineering & architecture · Immutable Data Patterns. Refine with filters or upvote what's useful.
React 是一个用于构建用户界面的 JavaScript 库,采用组件化架构和单向数据流。
Prevents direct modification of props and state to ensure consistent data snapshots.
This project is a collection of engineering guidelines and best practices for writing readable and maintainable JavaScript source code. It serves as a clean code guide and refactoring manual to help developers improve the structure of their codebases. The repository provides a reference for applying SOLID principles to reduce coupling and enable extensions without modifying existing logic. It includes a naming convention standard for using explicit, searchable identifiers and a guide for asynchronous patterns to replace nested callbacks with clearer execution flows. The guidelines cover soft
Implements immutable data patterns to ensure predictable state transitions and prevent side effects.
Day.js is a lightweight utility for parsing, validating, and manipulating date objects. It provides a fluent, chainable interface that allows for complex time calculations and transformations to be performed through a sequence of readable method calls. By utilizing an immutable wrapper pattern, the library ensures data integrity by creating new instances for every operation rather than modifying existing objects. The project is distinguished by a minimalist core abstraction that maintains a small footprint by offloading non-essential features to an optional, modular plugin system. This archit
Wraps native date objects in new instances for every operation to ensure data integrity and prevent unintended side effects.
This project is a JavaScript full-stack tutorial providing a step-by-step guide to building a complete web application from scratch. It focuses on the manual implementation of a custom JavaScript toolchain, encompassing the development of a server-side rendering workflow and a client-side state manager. The project distinguishes itself by implementing core development utilities without high-level frameworks, including custom solutions for bundling, transpilation, linting, and hot module replacement. It also features a real-time communication system based on WebSockets for bidirectional messag
Employs immutable state patterns to ensure predictable data updates by returning new objects instead of mutating state.
This project is a collection of official plugin packages and a native integration library designed to provide a consistent interface for accessing hardware and software functionality across different mobile and desktop platforms. It serves as a native platform bridge, enabling cross-platform applications to invoke native code and manage operating system dependencies. The project utilizes a federated plugin architecture, splitting plugins into common interfaces and separate platform implementations to allow for independent development and extension. It further supports native integration throu
Enforces data consistency by utilizing immutable data patterns and automated copying tools for state changes.
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
Implements architectural patterns that ensure data consistency by returning new object copies instead of mutating original structures.
This project provides a set of development guidelines and architectural recommendations for building iOS applications. It focuses on structuring Swift applications to decouple business logic from the user interface to improve testability and maintenance. The project covers specific implementation standards for security, such as using keychain storage for sensitive data and TLS certificate pinning for network traffic. It also defines patterns for code quality enforcement through static analysis and compiler configurations, as well as strategies for asset and localization management. The guide
Uses immutable data mapping to decouple the application from remote API data semantics.
Reason is a strongly typed functional language and multi-target compiler designed to produce either JavaScript for web environments or native machine code for operating systems. It serves as an OCaml-compatible language that shares an abstract syntax tree with OCaml, providing a practical syntax for the OCaml ecosystem. The project functions as a type-safe frontend language, incorporating JSX support to build user interfaces through structural elements that translate into type-safe function calls. It enables deep integration with the JavaScript ecosystem, allowing the use of existing librarie
Prioritizes data integrity through architectural patterns that create updated copies of records instead of mutating memory.
This project provides educational materials and courseware focused on the theoretical and practical foundations of distributed systems design. It serves as a comprehensive curriculum covering the disciplines of consensus, data consistency, reliability engineering, and scalability. The instructional content focuses on achieving cluster agreement through consensus algorithms and managing system-wide state via coordination frameworks. It includes a dedicated guide to data theory, exploring replication strategies, consistency models, and data convergence. The courseware covers a broad capability
Teaches how to eliminate transactional overhead by treating data as fixed once written.
This project provides a standardized project directory structure and boilerplate templates for organizing data analysis and machine learning workflows. It serves as a reproducible analysis framework and workspace boilerplate designed to ensure consistency across data science projects. The template distinguishes between exploratory research in notebooks and reusable, testable logic in modular Python packages. It enforces a convention-based directory hierarchy that treats the analysis pipeline as a directed acyclic graph by separating raw, interim, and processed data. The framework covers a br
Treats the analysis pipeline as a directed acyclic graph by utilizing immutable data flow patterns.
immudb is a tamperproof database that maintains an immutable record of entries using cryptographic commit logging. It ensures verifiable database integrity by utilizing Merkle trees to generate membership and consistency proofs that detect unauthorized data alterations. The system employs a multi-model storage engine that unifies key-value, document, and relational data structures within a single immutable backend. It provides compatibility with the PostgreSQL wire protocol, allowing it to integrate with standard SQL clients, ORMs, and database tools. The project covers broad capabilities in
Maintains a tamperproof record of entries using cryptographic commit logging to ensure a verifiable history of all changes.
ProseMirror 是一个富文本编辑器框架和协作编辑引擎,专为构建语义内容编辑器而设计。它提供了一个工具包,用于创建文档结构由声明式、模式驱动模型管理的文本界面。 该框架支持开发将文本视为结构化数据而非简单 HTML 的编辑器,确保文档内容通过严格的模式保持语义一致。这种架构支持实时协作编辑,以在多个用户之间同步文档更改。
Uses a persistent immutable state tree to manage document versions and provide a reliable undo history.
algs4 is a Java data structures library and algorithm reference collection designed as the source code for a standard computer science textbook curriculum. It provides a comprehensive suite of fundamental implementations for sorting, searching, and core data organization. The project serves as a graph theory framework, offering tools for representing directed and undirected graphs and performing complex traversals and pathfinding. It also includes a broad sorting algorithm suite and a specialized library of Java data structures, including stacks, queues, priority queues, and symbol tables. I
Utilizes immutable data patterns for geometric points and calendar dates to ensure data consistency.
MobX State Tree is a structured, tree-based state management library for JavaScript applications that combines typed model definitions with reactive snapshots and patch-based change tracking. It provides a reactive state container with runtime and compile-time type safety, where application state is defined as a tree of typed models with collocated actions, computed views, and lifecycle hooks for predictable state mutations. The library is built around an action-centric mutation model that encapsulates all state changes within named functions that directly modify the tree, supported by genera
Stores serializable JSON values as immutable data that snapshots as-is and ignores internal changes.
This project is a research data sharing framework and provenance protocol designed to ensure computational reproducibility. It provides a standardized set of guidelines for transforming raw source data into tidy formats through documented processing scripts and cleaning workflows. The framework distinguishes itself by emphasizing a strict provenance-based packaging system. It requires the organization of raw data, processing recipes, and code books into a single package, ensuring that original unmodified sources are preserved to allow for independent verification of all transformation steps.
Implements an architectural pattern where source data is treated as fixed to ensure reproducibility.
Pendulum is a Python datetime library used for creating, manipulating, and formatting date and time objects with native timezone awareness. It extends the native Python datetime class to maintain compatibility while providing a specialized engine for date arithmetic and timezone management. The library features a dedicated ISO 8601 and RFC 3339 parser that converts standardized strings into date objects without requiring manual format strings. It also includes a relative time generator for producing natural language descriptions of time differences and a timezone management tool that automati
Implements an immutable object pattern for date instances to prevent unintended side effects during arithmetic.
Arrow is a functional programming library for Kotlin that provides tools for implementing data-oriented programming patterns. It serves as a framework for typed error handling, a concurrency toolkit, and a library for the manipulation of immutable data. The project distinguishes itself through specialized capabilities for managing application failures using explicit types instead of exceptions and implementing resilience patterns such as circuit breakers and retry policies for distributed services. It also provides optics to update and query deeply nested immutable data structures without man
Implements architectural patterns that prioritize data integrity through immutable data models.
Athens is no longer maintainted. Athens was an open-source, collaborative knowledge graph, backed by YC W21
Stores graph data as immutable facts in a Datomic-style database enabling time-travel queries and conflict-free concurrent edits.
Datascript 是一个不可变的、内存中的状态存储和基于模式的三元组存储。它将应用状态作为版本化数据库进行管理,将数据存储为由实体、属性、值和事务组成的不可变事实。 该项目提供了一个用于执行 Datalog 查询的逻辑引擎,支持隐式连接、递归规则和否定。它还具有一个用于检索深度嵌套实体图和相关数据结构的声明式 pull API。 该数据库通过模式驱动的约束和属性类型强制执行数据完整性。它支持原子事务、用于持久化的可插拔存储协议,以及用于优化查找的 B 树属性索引。 该系统专为 Clojure、ClojureScript 和 JavaScript 环境设计。
Implements a versioned database using an immutable EAVT (Entity-Attribute-Value-Transaction) triple store model.
gl-matrix is a high-performance JavaScript library for vector and matrix math, purpose-built for real-time 3D graphics and physics simulations. It stores all vectors and matrices as typed arrays (Float32Array or Float64Array) in column-major order, matching the memory layout expected by OpenGL and WebGL shaders without requiring transposition. The library is implemented from scratch with zero external dependencies, keeping its bundle size minimal for web and Node.js environments. The library distinguishes itself through its immutable operation pattern, where each math function returns a new t
Returns new typed arrays from each operation instead of mutating inputs for predictable state management.