An immutable state
Create your next immutable state by mutating the current one
utilities to create immutable state
TypeScript definitions for redux-immutable-state-invariant
A Mutative middleware for Zustand enhances the efficiency of immutable state updates.
Create your next immutable state by mutating the current one
immutable state merge util
Create your next immutable state by mutating the current one
React immutable state management.
Redux middleware that detects mutations between and outside redux dispatches. For development use only.
Zero-dependency SPA framework with immutable state and virtual DOM
Reactive immutable state.
Smart immutable state for React
Interceptor based event bus, side effect & immutable state handling
Juspay Agent Framework - A purely functional agent framework with immutable state and composable tools
Immutable state change controller
Immutable state for React.js
Immutable state management for TypeScript
Store with compile-time-immutable state.
React form helpers for immutable state
Create your next immutable state by mutating the current one
Observe your immutable state trees
Immutable state change controller
React hooks for the Immutable state change controller
Immutable state with helpers to build awesome things
Linear workflow framework based on immutable state
STN (State Transition Notation) provides a rule-agnostic format for describing state transitions in abstract strategy board games. This gem implements the STN Specification v1.0.0 with a modern Ruby interface featuring immutable transition objects and functional programming principles. STN captures net changes between game positions by recording modifications in piece locations, hand/reserve contents, and active player status using standardized CELL coordinates and QPI piece identification. Perfect for game engines, position diff tracking, undo/redo systems, and network synchronization requiring efficient state delta representation across multiple game types and traditions.
A Rails plugin that will ensure an ActiveRecord object is immutable once saved. Optionally, you can specify attributes to be mutable if the object is in a particular state (block evaluates to true).
[Ruby on Rails Training] Cryptodemo will allow us to perform safe transactions keeping an immutable chain state.
A Ruby implementation of GAN (General Actor Notation) v1.0.0 specification for identifying game actors in abstract strategy board games. GAN combines Style Name Notation (SNN) and Piece Identifier Notation (PIN) with a colon separator to provide complete, unambiguous piece identification. Represents all four fundamental piece attributes: Type, Side, State, and Style. Enables cross-style gaming, immutable transformations, and component extraction with to_pin/to_snn methods. Built on sashite-snn and sashite-pin gems.
A clean, immutable Ruby interface for working with piece identifiers in PNN format. PNN provides a consistent and rule-agnostic notation for representing pieces in abstract strategy board games like chess, shogi, and xiangqi. Features include state modifiers for enhanced/diminished/intermediate pieces, ownership changes, and comprehensive validation. Perfect for game engines, analysis tools, and educational applications.
PNN (Piece Name Notation) provides a rule-agnostic, scalable naming system for identifying abstract strategy board game pieces. This gem implements the PNN Specification v1.0.0 with a modern Ruby interface featuring immutable piece name objects and functional programming principles. PNN uses canonical ASCII names with optional state modifiers and optional terminal markers (e.g., "KING", "queen", "+ROOK", "-pawn", "KING^", "+GENERAL^") to unambiguously refer to game pieces across variants and traditions. Ideal for engines, protocols, and tools that need clear and extensible piece identifiers.
Parse and generate Portable Action Notation (PAN) strings for representing atomic actions in abstract strategy board games including chess, shogi, xiangqi, and others. PAN provides an intuitive operator-based syntax with six core operators: "-" (move to empty square), "+" (capture), "~" (special moves with side effects), "*" (drop to board), "." (drop with capture), and "=" (in-place transformation), plus "..." (pass turn). Supports coordinates via CELL specification and piece identifiers via EPIN specification. Handles transformations ("e7-e8=Q"), enhanced/diminished states ("+R", "-P"), and style derivation markers ("K'"). Provides comprehensive validation, immutable action objects, and functional API design. Examples: "e2-e4" (move), "d1+f3" (capture), "e1~g1" (castling), "P*e5" (drop), "e7-e8=Q" (promotion), "..." (pass), "+d4" (static capture), "e4=+P" (modify).
LCN (Location Condition Notation) provides a rule-agnostic format for describing location conditions in abstract strategy board games. This gem implements the LCN Specification v1.0.0 with a modern Ruby interface featuring immutable condition objects and functional programming principles. LCN enables standardized representation of environmental constraints on board locations using reserved keywords ("empty", "enemy") and QPI piece identifiers with CELL coordinate system integration. Perfect for movement validation, pre-condition checking, constraint evaluation, and rule-agnostic game logic requiring precise location state requirements across multiple game types and traditions.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.