<p align="center"><img src="./docs/_images/logo.png" width="415px" height="145px" /></p>
Immutable Data Collections
Check the immutability of TypeScript types
PropType validators that work with Immutable.js.
redux-immutable is used to create an equivalent function of Redux combineReducers that works with Immutable.js state.
A React framework for building text editors.
Immutable finite list objects with constant-time equality testing (===) and no memory leaks
a date and time library for javascript
ANSI escape codes for styling strings in the terminal
A bunch of reactive utility types and functions, for building primitives with Solid.js
Immutable ArrayBuffer (the shim!)
Immutable JSON patch with support for reverting operations
Immutability helpers with fast reads and acceptable writes
React PureComponent implementation embracing Immutable.js
Modify deep object properties without modifying the original object (immutability). Works great with React and Redux.
Serialize unserializable data and parse it back.
Immutable data structures for JavaScript which are backwards-compatible with normal JS Arrays and Objects.
A JavaScript library for efficient immutable updates
Internationalized calendar, date, and time manipulation utilities
Chrome Dev Tools formatter for the Immutable JS library
React JSON Viewer Component, Extracted from redux-devtools
Low-level CSS toolkit
Fast purely functional immutable lists.
Collection of utility function for use with Draftjs.
SNN (Style Name Notation) implementation for Ruby. Provides a rule-agnostic format for identifying game styles in abstract strategy board games with immutable style name objects and functional programming principles.
SIN (Style Identifier Notation) implementation for Ruby. Provides a rule-agnostic format for identifying player styles in abstract strategy board games with immutable identifier objects and functional programming principles.
A Sass library for building immutable and namespaced BEM-style CSS objects
Include "Lightning-Fast Modular CSS with No Side Effects" Basscss in Rails. Basscss is a lightweight collection of base element styles and immutable utilities designed for speed, clarity, performance, and scalability.
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 Ruby library for terminal text styling with ANSI colors and effects. Provides an elegant, functional API with immutable style objects that can be composed using the >> operator. Supports standard colors, hex values, and comprehensive text effects including bold, faint, italic, underline, overline, blink, inverse, and concealed text. Features type-safe argument validation using dry-schema and dry-types.
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).
PCN (Portable Chess Notation) provides a comprehensive, JSON-based format for representing complete chess game records across variants. This gem implements the PCN Specification v1.0.0 with a modern Ruby interface featuring immutable game objects and functional programming principles. PCN integrates the Sashité ecosystem specifications (PMN for moves, FEEN for positions, and SNN for style identification) to create a unified, rule-agnostic game recording system. Supports traditional single-variant games and cross-variant scenarios where players use different game systems, with complete metadata tracking including player information, tournament context, and game status. Perfect for game engines, database storage, game analysis tools, and archival systems requiring comprehensive game record management across diverse abstract strategy board games.