30 open-source projects similar to gaearon/redux-thunk, ranked by shared indexed features. Tags may describe platforms or build tools rather than the same primary purpose. Check each project’s use case, license, and deployment requirements before treating it as a replacement.
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-thunk is a middleware for Redux that enables action creators to return functions instead of objects. This allows the store to handle asynchronous side effects and manage complex workflows and delayed state updates. The middleware acts as a side effect orchestrator that intercepts dispatched functions to execute asynchronous logic, such as API calls. It also functions as a dependency injection layer, allowing external services or mock objects to be passed into action creators to improve modularity and testability. The project provides capabilities for orchestrating control flow and coor
redux-logger is a Redux state logger and JavaScript state debugger designed to record actions and state transitions in the browser console. It functions as middleware that captures state changes and action payloads within a Redux store to assist in debugging application flow. The project provides a console log formatter to customize the appearance of logs using colors, timestamps, and execution durations. It allows for the restriction of recorded actions through custom predicates to reduce console noise and includes capabilities to transform complex state data into readable formats. The tool
Refluxjs is a state management library designed to implement a unidirectional dataflow architecture. It manages application state through a strict cycle of actions and stores to prevent unpredictable update loops. The library coordinates asynchronous operations by managing event streams and triggering related success or failure actions. It also provides a global state registry that tracks store states via unique identifiers, enabling deep cloning for persistence and time-travel debugging. Its capability surface covers centralized state management, including the creation of data stores and de
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
Redux is a JavaScript state management library that serves as a centralized state container for application data. It operates as a predictable state machine, maintaining the entire application state in a single immutable object tree to ensure a consistent source of truth. The library enforces a unidirectional data flow architecture where the state is read-only and can only be modified by dispatching action objects. State transitions are calculated by applying pure reducer functions to the current state and a specific action, ensuring that data updates are deterministic and trackable. The sys
This repository serves as a comprehensive educational resource and study guide for front-end developers preparing for technical interviews. It provides a structured collection of questions, answers, and reference materials focused on the core concepts and architectural patterns of the React library. The content covers the fundamental principles of component-based user interface design, including lifecycle management, state synchronization, and data flow patterns. It details how to implement predictable state management through centralized stores and action dispatching, as well as how to utili
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
React Redux is a set of official bindings and integration layers that connect a Redux global state container to a React user interface. It functions as a state synchronization library and a communication bridge, allowing components to read state and dispatch actions to a centralized store. The project decouples business logic from the view layer, ensuring that the user interface automatically updates whenever the underlying global state changes. It manages complex data flows by linking the UI to a central state container to share data across different components and screens. The library impl
Easy-peasy is a React state management library and typed framework that provides a centralized store for managing global application state. It functions as an immutable state store and an async state orchestrator, ensuring end-to-end type safety for state definitions, actions, and derived values. The library distinguishes itself by converting direct mutation syntax into immutable updates to simplify the management of nested data. It includes a mechanism for persisting the state tree to storage and rehydrating it during the application boot process, with the ability to suspend the user interfa
Dva is a framework for building web applications that integrates React and Redux. It utilizes a model-driven architecture to organize application logic, centralizing state management into cohesive modules that encapsulate reducers, asynchronous effects, and event subscriptions. The framework distinguishes itself through a plugin system that intercepts the action dispatch cycle to automate cross-cutting concerns such as loading state tracking. It also provides a development environment that supports hot module replacement, allowing for the updating of components, routes, and state models in th
MPX is a cross-platform framework designed to build applications for multiple mini-program ecosystems and the web from a single codebase. It utilizes a static transpilation pipeline to transform source code into platform-specific bundles, employing a single-file component system that encapsulates templates, logic, and styles. The framework provides a reactive state management system that automatically synchronizes application data with the user interface through computed properties and watchers. The project distinguishes itself through a robust build-time toolchain that supports sub-package p
Redux-Saga is a middleware library for Redux applications that manages asynchronous data flows and complex side effects. It serves as a decoupled state management effect layer and workflow orchestrator, utilizing JavaScript generator functions to pause and resume asynchronous operations without blocking the application. The library distinguishes itself by using generators to manage sequential or parallel tasks and state transitions outside of the main user interface thread. This approach allows for the coordination of complex asynchronous workflows, such as multi-step data fetching and API ca
Redux Ship is a side effects handler for Redux which focuses on:
Redux Promise Middleware enables simple, yet robust handling of async action creators in Redux.
This project provides a comprehensive suite of tools for managing asynchronous state and building full-stack web applications. At its core, it functions as a centralized synchronization layer that automates data fetching, caching, and background revalidation, ensuring that remote server data remains consistent with the local user interface. By utilizing a declarative, hook-based programming model, it simplifies the management of complex data lifecycles and loading states. The project distinguishes itself through a headless design philosophy that decouples business logic from visual presentati
React Query is an asynchronous state management library and data fetching orchestrator designed to fetch, cache, and synchronize server state in web applications. It functions as a server-state cache manager that handles asynchronous data requests to keep local application state in sync with a remote server. The library implements a stale-while-revalidate cache pattern, which provides immediate access to cached data while triggering background updates to maintain consistency. It further supports optimistic user interface updates, allowing the interface to change immediately during data mutati
Riverpod is a reactive state management framework for Dart that manages application state through providers which automatically track dependencies and rebuild dependents when values change. It functions as an asynchronous data caching library, caching results of async operations and exposing loading, error, and data states to widgets without manual future handling. The framework includes a provider composition system that combines multiple providers into derived values that recompute automatically when any dependency changes, along with code generation for state providers that reduces boilerpl
Ktor is a framework for building asynchronous server applications and cross-platform network clients using the Kotlin programming language. It provides a lightweight, modular architecture that allows developers to construct services and communication layers by composing independent components and plugins. The framework is defined by its pipeline-based plugin system, which enables the injection of custom logic into request processing stages, and a type-safe domain-specific language for defining application routing. By utilizing an asynchronous execution model, it handles concurrent network ope
Vuex is a centralized state management library for Vue.js applications. It provides a single source of truth for application data, ensuring consistent state across a component tree through a reactive data store. The system organizes the global state tree into independent, namespaced modules to prevent naming collisions and maintain code organization. It distinguishes between synchronous mutations for predictable state transitions and asynchronous actions for handling complex operations. The library includes cached getters for derived state, store lifecycle hooks for mutation interception, an
Salvo is a comprehensive Rust web framework for building asynchronous HTTP servers and web applications. It features a hierarchical web router that uses a tree-based structure to map requests to handlers and an asynchronous middleware pipeline based on the onion model for request and response pre- and post-processing. The framework is distinguished by its native support for modern network protocols, including a QUIC-based HTTP/3 implementation alongside HTTP/1 and HTTP/2. It includes an integrated OpenAPI documentation generator that extracts schemas directly from handler signatures to produc
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
This project is a Redux state logger and console debugging tool. It functions as middleware for the Redux dispatch pipeline, acting as a state transition tracker that records actions and state changes directly to the browser console. The tool allows for the interception of actions to log timing, payloads, and state transitions. It provides capabilities to filter specific actions using predicate functions to reduce noise and transform complex state or immutable data into readable formats for easier inspection. The utility includes options for customizing console output through timestamps, col
redux-logger is a state management debugger and logger that operates as Redux middleware. It records actions and state transitions directly to the browser console to facilitate the monitoring of application state changes. The tool provides a mechanism to reduce console noise through action filters that use custom predicates to determine which events are recorded. It also includes a data transformation pipeline to sanitize or modify state and actions before they are output. The project covers observability capabilities including formatted console output with timestamps and colors, synchronous
This repository serves as a comprehensive knowledge base and study guide for developers preparing for technical assessments and job screenings focused on React. It provides a structured collection of common industry inquiries and answers designed to build proficiency in the core concepts and patterns required for modern web interface development. The resource covers the fundamental pillars of the library, including component-based architecture, declarative rendering, and unidirectional data flow. It details essential patterns for managing both local and global application state, as well as te
This project is a React learning resource consisting of starter files and reference projects. It provides a collection of full stack React project templates and component library examples to demonstrate the construction of interactive user interfaces and single page applications. The resource includes a state management guide covering the use of hooks, reducers, and context providers. It features practical implementations for managing local component state, synchronizing global application data, and handling complex state transitions. The material covers full stack web development, including
Stimulus is a JavaScript behavior framework and client-side logic layer used to add interactive behavior to server-rendered HTML. It functions as a system of DOM component controllers that organize JavaScript logic into classes, allowing developers to enhance server-delivered markup without replacing the rendering process with a client-side framework. The framework uses data attributes to bind JavaScript classes to HTML elements and map DOM events to specific methods through document-level event delegation. It employs a lifecycle manager based on mutation observers to automatically instantiat
Snowflake is a cross-platform mobile app starter designed for building iOS and Android applications using a single JavaScript codebase. It provides a pre-configured boilerplate to accelerate the initial development process for mobile applications. The project includes a Redux state management template for coordinating global application state and persisting user sessions, along with a REST API integration framework for communicating with remote or local servers via HTTP requests. It also features a localization system that maps user interface content into multiple languages based on the devic
unstated-next is a lightweight state management library for React that shares state and logic across components. It functions as a tool to transform custom hooks into shared state containers, providing a minimalist approach to synchronizing data without the use of complex external state stores. The project uses a provider-consumer pattern to decouple state definition from its usage. It wraps custom hooks into context containers to reduce manual boilerplate, allowing state and methods to be broadcast from a central provider to deeply nested child components. The system supports state containe
Underscore is a JavaScript utility library providing a suite of functional programming and data manipulation helpers. It serves as a framework for transforming data collections, composing functions, managing objects, and performing precise data type validation without modifying core language prototypes. The project includes a functional programming toolkit designed to control function execution timing and behavior through techniques such as debouncing, throttling, and partial application. It also provides a dedicated object manipulation utility for cloning, merging, picking, and omitting prop