awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com

Reactive state engine

Ranking updated Jul 24, 2026

For reactive state engines, the strongest matches are statelyai/xstate (XState is a robust state machine and statechart library), pmndrs/zustand (Zustand is a lightweight reactive state management library focused) and mobxjs/mobx-state-tree (MobX State Tree provides a structured, tree-based state management). reduxjs/redux-toolkit and effector/effector round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.

Compare the top reactive state engines on GitHub, ranked by stars and activity. Find the right library and pick the best fit.

Reactive state engine

Find the best repos with AI.We'll search the best matching repositories with AI.
  • statelyai/xstatestatelyai avatar

    statelyai/xstate

    29,734View on GitHub↗

    XState is a statechart logic library and finite state machine framework used to model complex application behavior. It provides a system for defining states, events, and transitions to govern how a system responds to inputs through a formal schema. The project includes a visual state machine editor that allows for the design of state machine diagrams which automatically generate the corresponding logic and code. It implements an actor model to manage independent concurrent entities that communicate via asynchronous events to coordinate behavioral flows. The framework covers event-driven stat

    XState is a robust state machine and statechart library that implements an actor model, event-driven architecture, and type-safe reactive state management to handle complex application logic.

    TypeScriptActor ModelsActor ModelsEvent-Driven Architectures
    View on GitHub↗29,734
  • pmndrs/zustandpmndrs avatar

    pmndrs/zustand

    58,371View on GitHub↗

    Zustand is a state management library that provides a centralized store for managing shared application data. It functions as a reactive container that connects application state to components, allowing them to subscribe to specific slices of data and trigger updates automatically. By utilizing selector-based data access and immutable state updates, the library ensures that components only re-render when their observed data changes, maintaining a predictable and efficient data flow. The library distinguishes itself through a pluggable, middleware-based architecture that allows for the extensi

    Zustand is a lightweight reactive state management library focused on centralized stores and selector-based updates, making it a strong tool for application state even though it lacks built-in finite state machine or actor model capabilities.

    TypeScriptImmutable State ContainersType-Safe State ArchitecturesType-Safe State Definitions
    View on GitHub↗58,371
  • mobxjs/mobx-state-treemobxjs avatar

    mobxjs/mobx-state-tree

    7,050View on GitHub↗

    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

    MobX State Tree provides a structured, tree-based state management library with reactive snapshots, type safety, and patch-based change tracking, making it a strong fit for handling complex application state logic.

    TypeScriptReactive State Typing
    View on GitHub↗7,050
  • reduxjs/redux-toolkitreduxjs avatar

    reduxjs/redux-toolkit

    11,213View on GitHub↗

    Redux Toolkit is a state management toolkit and store configurator designed to simplify the development of Redux applications by reducing boilerplate code. It functions as an immutable state manager and a centralized store configuration system that provides a streamlined workflow for managing global application state. The project distinguishes itself through an automated async action orchestrator that manages the lifecycle of promises by automatically dispatching pending, fulfilled, and rejected actions. It also acts as a normalized state organizer, providing tools to structure complex relati

    Redux Toolkit is a reactive state management library that provides immutable state handling and centralized store configuration, though it focuses on a centralized store architecture rather than formal finite state machines or an actor model.

    TypeScriptImmutable State ContainersImmutable State Utilities
    View on GitHub↗11,213
  • effector/effectoreffector avatar

    effector/effector

    4,837View on GitHub↗

    Effector is a reactive state management library designed for building complex, event-driven applications. It functions as a data flow engine that models application logic as a directed acyclic graph, ensuring that state updates propagate automatically through interconnected nodes. By utilizing atomic state updates and declarative unit composition, the library maintains data consistency and provides a predictable execution model for managing application state. The project distinguishes itself through its framework-agnostic architecture, which decouples business logic from user interface implem

    Effector is a reactive state management library built specifically for complex event-driven applications, featuring type safety, declarative unit composition, and a predictable execution model.

    TypeScriptEvent-Driven Architectures
    View on GitHub↗4,837
  • reactive-extensions/rxjsReactive-Extensions avatar

    Reactive-Extensions/RxJS

    19,353View on GitHub↗

    The Reactive Extensions for JavaScript

    RxJS is a foundational reactive programming library for JavaScript that handles asynchronous data streams and event-driven architectures, though it lacks built-in finite state machines or actor models.

    JavaScriptReactive Stream Libraries
    View on GitHub↗19,353
  • baconjs/bacon.jsbaconjs avatar

    baconjs/bacon.js

    6,458View on GitHub↗

    Bacon.js is a JavaScript functional reactive programming library used for coordinating complex asynchronous data flows. It functions as an observable event stream framework and an asynchronous data flow orchestrator, allowing developers to model events as declarative streams and properties. The library distinguishes itself through its ability to manage reactive state and synchronize timing across multiple sources. It provides specialized mechanisms for atomic state synchronization to prevent glitches in derived properties and offers advanced coordination strategies such as asynchronous stream

    Bacon.js is a functional reactive programming library for managing asynchronous data flows and reactive state, making it a fitting tool for event-driven applications despite lacking a built-in finite state machine.

    TypeScriptReactive Programming Libraries
    View on GitHub↗6,458
  • reactivecocoa/reactivecocoaReactiveCocoa avatar

    ReactiveCocoa/ReactiveCocoa

    19,835View on GitHub↗

    ReactiveCocoa is a functional reactive programming framework and Cocoa UI binding layer. It provides a library for composing asynchronous data streams and managing application state through signals and functional operators. The framework functions as an Objective-C data binding library that links object properties and method calls to reactive streams using runtime dynamism and swizzling. It includes a utility to convert traditional key-value observation notifications into composable streams for synchronized state tracking. The project covers reactive UI programming by connecting interface el

    ReactiveCocoa is a functional reactive programming framework that handles asynchronous data streams and state management, though it focuses heavily on Cocoa UI binding and stream composition rather than finite state machines or actor models.

    SwiftEvent Handling
    View on GitHub↗19,835
  • pmndrs/jotaipmndrs avatar

    pmndrs/jotai

    21,208View on GitHub↗

    Jotai is a state management library for React applications that utilizes an atomic model to handle data. It organizes application state into small, independent units called atoms, which automatically track dependencies and trigger granular updates to components. By building state through these composable primitives, the library ensures that only the necessary parts of an application re-render when data changes. The library distinguishes itself through its flexible approach to state composition and asynchronous data handling. It integrates promises directly into the state model, allowing devel

    Jotai is a lightweight atomic state management library for React that handles reactive updates and immutability, though it focuses on atomic composition rather than formal finite state machines.

    TypeScriptState Type Inference
    View on GitHub↗21,208
  • day8/re-frameday8 avatar

    day8/re-frame

    5,532View on GitHub↗

    re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized, immutable database that serves as the single source of truth for the entire application state, enforcing a strict unidirectional data flow where events trigger state transitions and subsequent view updates. The framework distinguishes itself through a reactive signal graph and an interceptor-based middleware pipeline. By treating application logic as a sequence of data-driven events and declarative side effects, it decouples business logic from the view layer. This architectur

    re-frame is a functional state management framework for ClojureScript that uses an immutable central database and an event-driven, unidirectional data flow, though it lacks built-in support for formal finite state machines or an actor model.

    ClojureEvent-Driven ArchitecturesFinite State Machine Engines
    View on GitHub↗5,532
  • zerobias/effectorzerobias avatar

    zerobias/effector

    4,837View on GitHub↗

    Effector is a reactive state management library and data flow orchestrator designed for building complex, event-driven applications. It models application logic as a directed acyclic graph, where state updates and asynchronous side effects propagate automatically through declarative pipelines. By decoupling business logic from user interface layers, it allows developers to maintain state in independent containers that communicate via standard interfaces, ensuring the system remains framework-agnostic. The library distinguishes itself through its robust support for isolated execution scopes, w

    Effector is a framework-agnostic reactive state management library built for complex event-driven data flow, though it focuses on declarative pipelines and stores rather than strict finite state machines or actor models.

    TypeScriptState Type Definitions
    View on GitHub↗4,837
  • reduxjs/reduxreduxjs avatar

    reduxjs/redux

    61,511View on GitHub↗

    Redux is a predictable state container designed to manage global application data through a centralized store. It operates on a unidirectional data flow architecture where state transitions are triggered by dispatching action objects, which are then processed by pure reducer functions to produce a new, immutable state tree. This approach ensures that application data remains consistent and traceable across the entire component hierarchy. The library distinguishes itself through a functional pattern that relies on pure functions for state logic and a middleware-based extension system. This mid

    Redux is a well-known state management library that provides immutable state patterns and centralized stores, though it lacks built-in support for formal finite state machines or the actor model.

    TypeScriptAction Reducer PatternsAction-Driven State MutationsCentralized State Containers
    View on GitHub↗61,511
  • cysharp/r3Cysharp avatar

    Cysharp/R3

    3,616View on GitHub↗

    R3 is a reactive extensions library and asynchronous data pipeline framework. It provides a system for composing asynchronous data streams, managing reactive state, and coordinating event sequences using observable patterns. The project distinguishes itself with a deterministic testing toolkit that mocks time and frame updates to ensure reproducible unit tests for asynchronous logic. It also includes observability tools for tracking active subscriptions and generating stack traces to identify memory leaks, alongside centralized exception routing for pipeline recovery. The framework covers a

    R3 is a reactive extensions library and asynchronous data pipeline framework written in C#, but it focuses on observable streams and data pipelines rather than explicit finite state machines or actor models.

    C#Observable StreamsReactive Stream ArchitecturesAsync Data Pipeline Frameworks
    View on GitHub↗3,616
  • solidjs/solidsolidjs avatar

    solidjs/solid

    35,621View on GitHub↗

    Solid is a declarative JavaScript framework for building user interfaces through fine-grained reactivity. By utilizing a compile-time template transformation process, it converts JSX into direct DOM manipulation instructions, eliminating the need for a virtual tree. This architecture allows the framework to track dependencies at the individual element level, ensuring that state changes trigger surgical updates to the interface. The framework distinguishes itself through its isomorphic rendering pipeline, which shares reactive logic across server and client environments to support both initial

    Solid is a reactive UI framework centered on fine-grained reactivity and reactive primitives, though it is primarily a component framework rather than a dedicated state machine or actor-model library.

    TypeScriptReactive State ManagementCompilersComponent Testing
    View on GitHub↗35,621
  • mobxjs/mobxmobxjs avatar

    mobxjs/mobx

    28,189View on GitHub↗

    MobX is a reactive state management library and fine-grained reactivity engine. It provides an observable data store that automatically triggers updates in the user interface when data structures change, functioning as a transparent functional reactive store to maintain a consistent source of truth. The system utilizes a dependency-graph mapping and proxy-based object observation to track data dependencies. This ensures that only the specific components dependent on changed data are updated, which reduces unnecessary re-renders and optimizes frontend performance. The library supports decoupl

    MobX is a reactive state management library offering fine-grained reactivity and observable data stores, but it focuses on transparent dependency tracking rather than explicit finite state machines or actor models.

    TypeScriptReactive State ManagementApplication State ManagementCentralized State Stores
    View on GitHub↗28,189
  • facebook/fluxfacebook avatar

    facebook/flux

    17,464View on GitHub↗

    Flux is an application architecture framework and client-side state orchestrator. It implements a unidirectional state management pattern to ensure data flows in one direction, preventing unpredictable state changes and maintaining consistency across the user interface. The system functions as an action-driven state architecture where changes are triggered by plain object actions. A centralized dispatcher routes these actions to multiple data stores, which partition the application state and notify views of changes via a publisher-subscriber synchronization pattern. This approach provides a

    Flux is a client-side state orchestrator implementing a unidirectional data flow pattern, making it a relevant event-driven state architecture despite lacking formal state machine or actor model features.

    JavaScriptUnidirectional Data Flow ArchitecturesAction RoutingAction-Based State Transitions
    View on GitHub↗17,464
  • ngrx/platformngrx avatar

    ngrx/platform

    8,320View on GitHub↗

    This project is a state management framework for Angular applications that provides a predictable state container. It implements a Redux-style architecture using a centralized store, managing global and local application data through an observable-based data flow of actions and reducers. The framework includes a specialized entity management tool for organizing and synchronizing server-side data collections within client-side stores. It also provides a reactive store system that integrates state updates with Angular signals for change detection and includes debugging mechanisms for time-trave

    This repository provides a reactive state management framework tailored for Angular applications using a Redux-style architecture and observable data flow, fitting the search for state management despite lacking built-in finite state machine or actor model capabilities.

    TypeScriptCentralized State ManagementCentralized State StoresAsynchronous Effect Handlers
    View on GitHub↗8,320
  • nanostores/nanostoresnanostores avatar

    nanostores/nanostores

    7,072View on GitHub↗

    Nano Stores is a framework-agnostic state management library that uses a system of small, independent atomic stores to synchronize data across different JavaScript UI frameworks. It provides a reactive state container designed to minimize unnecessary component re-renders by decoupling application state into independent stores. The library features specialized synchronizers for real-time distributed state using WebSockets with conflict-free replicated data types, as well as a browser storage persistor for maintaining state across multiple open tabs. It utilizes adapter-based integration to map

    Nano Stores is a lightweight reactive state management library that provides atomic stores for cross-framework state handling, though it focuses on simple stores rather than formal finite state machines or the actor model.

    TypeScriptAtomic State PrimitivesReactive State ManagersState Management Libraries
    View on GitHub↗7,072
  • preactjs/signalspreactjs avatar

    preactjs/signals

    4,452View on GitHub↗

    Signals is a reactive state management library and fine-grained reactivity engine. It functions as a dependency-tracking state manager that maps relationships between values to ensure derived data and user interface elements remain synchronized. The library distinguishes itself through direct-to-node DOM binding, which allows state to update specific text nodes in the browser without triggering a full component render cycle. It employs a runtime dependency graph and atomic batching to group multiple state modifications into single notification cycles, reducing redundant executions. The syste

    This project is a reactive state management library offering fine-grained reactivity and dependency tracking, though it focuses on signal-based state rather than finite state machines or the actor model.

    TypeScriptReactive State ContainersReactive State ManagementAutomatic Dependency Tracking
    View on GitHub↗4,452
  • matthewp/robotmatthewp avatar

    matthewp/robot

    2,179View on GitHub↗

    Robot is a functional and immutable finite state machine library for managing declarative application states and transitions. It utilizes an immutable state transition engine where next states and side effects are computed through pure functions operating on immutable data structures without any side-effect mutations. States and allowed transitions are mapped in a declarative state table definition, making the overall state machine logic readable and inspectable. The library connects finite state machines directly to component rendering engines through component reactive bindings, ensuring th

    Robot is a functional and immutable finite state machine library that handles event-driven state logic in JavaScript, though it does not explicitly feature the actor model.

    JavaScriptFinite State Machine LibrariesApplication State MachinesPure State Transitions
    View on GitHub↗2,179
  • chakra-ui/zagchakra-ui avatar

    chakra-ui/zag

    5,121View on GitHub↗

    Zag is a headless UI state machine library that provides unstyled component logic to ensure consistent behavior across different rendering engines. It functions as a toolkit for modeling complex user interface interactions using statecharts, decoupling the underlying logic and accessibility attributes from visual styling. The library is framework-agnostic, utilizing specialized adapters to bridge its state machine logic with various JavaScript libraries such as React, Solid, Vue, and Svelte. This approach allows developers to maintain a single interaction model while applying any CSS or styli

    Zag provides framework-agnostic state machine logic tailored specifically for headless UI component behavior rather than general application-wide state management.

    TypeScriptFramework Agnostic UI LogicHeadless Accessibility LogicHeadless Logic Decoupling
    View on GitHub↗5,121
  • mweststrate/use-immermweststrate avatar

    mweststrate/use-immer

    4,536View on GitHub↗

    use-immer is a React state management utility that provides a custom hook for updating immutable state. It allows for the modification of a temporary draft version of data to calculate the next state transition. The tool simplifies the management of complex state by enabling direct mutations on a draft, which removes the need to manually copy nested objects or arrays using spread operators. This approach ensures the generation of a new immutable snapshot for predictable state changes. The library covers capabilities for updating deeply nested state and supports processing state changes throu

    use-immer is a React state management library that provides immutable state updates via draft proxies, making it a fitting tool for managing state reactivity though it lacks native finite state machine or actor model features.

    TypeScriptCustom State HooksDraft-Based State UtilitiesFunctional State Management
    View on GitHub↗4,536
  • felangel/blocfelangel avatar

    felangel/bloc

    12,455View on GitHub↗

    This is a Dart state management library and architectural framework that decouples business logic from the user interface by transforming a stream of events into a stream of states. It implements a business logic component pattern to ensure that state transitions are predictable and testable. The project distinguishes itself through advanced event stream processing, providing concurrency strategies to drop, restart, or queue incoming events. It includes a dedicated state persistence layer for saving and restoring application state to maintain session continuity, as well as tools for state his

    This Dart library uses a stream-based event-driven approach to decouple UI from business logic, making it a solid fit for reactive state management even though it lacks explicit finite state machine primitives.

    DartApplication State ManagersBusiness Logic ComponentsContext-Based Dependency Injection
    View on GitHub↗12,455
  • legendapp/legend-stateLegendApp avatar

    LegendApp/legend-state

    4,145View on GitHub↗

    Legend-State is a reactive state management library for JavaScript applications that provides a centralized container for application data. It utilizes a fine-grained reactivity engine to track state access automatically, allowing developers to update and retrieve data without the need for boilerplate patterns like reducers, actions, or dispatchers. The library distinguishes itself through its hierarchical, path-based state addressing and proxy-based dependency tracking. By isolating state dependencies, it ensures that user interface updates are triggered only for the specific components that

    Legend-State is a reactive state management library focused on fine-grained reactivity and performance optimization, making it a strong tool for application state even though it does not explicitly provide finite state machines or an actor model.

    TypeScriptApplication State ManagementReactive State Management LibrariesFine-Grained Reactivity
    View on GitHub↗4,145
  • state-adapt/state-adaptstate-adapt avatar

    state-adapt/state-adapt

    307View on GitHub↗

    Declarative, incremental state management library

    State-Adapt is a declarative state management library in TypeScript that handles state logic incrementally, though it focuses more on declarative state derivation rather than implementing a full actor model or state machine by default.

    TypeScriptAlternative State ManagementState Management
    View on GitHub↗307
  • jonataslaw/getxjonataslaw avatar

    jonataslaw/getx

    11,181View on GitHub↗

    GetX is a comprehensive state management framework for Flutter that provides a toolkit for managing application state, dependency injection, and routing without requiring build context. It serves as a core architectural system for reactive state management, navigation, service location, and multi-language theme support. The project is distinguished by its ability to handle context-free navigation and the use of observable variables that automatically trigger user interface updates. It features a dependency injection container with lazy loading and automated memory management, alongside a rout

    GetX is a comprehensive state management and architectural framework for Flutter that provides reactive state capabilities and dependency management, though it focuses heavily on mobile UI development rather than general-purpose state machines or actor models.

    DartObservable State ManagementContext-Based Dependency InjectionContextless Navigation
    View on GitHub↗11,181
  • manantank/radioactive-stateMananTank avatar

    MananTank/radioactive-state

    315View on GitHub↗

    ☢ Make Your React App Truly Reactive!

    This library provides reactive state management hooks for React applications, making it a fitting choice for state handling even though it lacks explicit finite state machine or actor model features.

    JavaScriptProject Documentation Examples
    View on GitHub↗315
  • redux-observable/redux-observableredux-observable avatar

    redux-observable/redux-observable

    7,815View on GitHub↗

    Redux-Observable is a functional middleware for Redux that treats action streams as observables to manage complex asynchronous side effects and timing. It acts as an asynchronous action orchestrator, transforming streams of Redux actions into new actions through pipelines of observable-based side effects to coordinate application state changes. The project allows for the dynamic loading, injection, and replacement of side-effect streams at runtime. This enables the addition of asynchronous task handlers without requiring a full application restart, supporting code splitting and lazy loading o

    Redux-Observable is a reactive state management middleware built on RxJS that handles asynchronous action streams and complex side effects, matching the requested stream-based approach while lacking finite state machines or an actor model.

    TypeScriptObservable MiddlewaresAction DispatchersAsync Action Orchestrators
    View on GitHub↗7,815
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
statelyai/xstate29.7KTypeScriptMITJun 22, 2026
pmndrs/zustand58.4KTypeScriptMITJun 22, 2026
mobxjs/mobx-state-tree7.1KTypeScriptMITMar 30, 2026
reduxjs/redux-toolkit11.2KTypeScriptMITJun 23, 2026
effector/effector4.8KTypeScriptMITMay 13, 2026
reactive-extensions/rxjs19.4KJavaScriptNOASSERTIONApr 18, 2018
baconjs/bacon.js6.5KTypeScriptMITApr 18, 2025
reactivecocoa/reactivecocoa19.8KSwiftMITSep 12, 2025
pmndrs/jotai21.2KTypeScriptMITJun 12, 2026
day8/re-frame5.5KClojureMITMay 5, 2026

Related searches

  • Reactive binding engines
  • a reactive state management library for frontend
  • State machine router
  • a javascript library for building user interfaces
  • State injection vulnerabilities
  • a state management library for frontend frameworks
  • State management library
  • State management library