├── .github └── PULL_REQUEST_TEMPLATE.md ├── README.md ├── action-reducer-generators.md ├── actions.md ├── apps-and-examples.md ├── component-data-fetching-preloading.md ├── component-state.md ├── devtools.md ├── entity-collection-management.md ├── forms.md ├── immutable-data.md ├── library-integration.md ├── middleware-async.md ├── middleware-network-requests.md ├── middleware-sockets-adapters.md ├── middleware.md ├── other-resources.md ├── project-scaffolding.md ├── reducers.md ├── routing.md ├── side-effects-functions.md ├── side-effects-generators.md ├── side-effects-observables.md ├── side-effects-other.md ├── side-effects.md ├── store-persistence.md ├── store.md ├── testing.md ├── use-cases.md ├── utilities.md ├── variations.md └── widgets.md /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | # Formatting 2 | 3 | Please follow the existing formatting for each entry. In order to get newlines without paragraph breaks, each entry should have two spaces at the end of the line after both the URL and the title. Also, two-space indents before the URL and the description. Example: 4 | 5 | ```markdown 6 | - **Link Title** 7 | http://example.com 8 | Link description here 9 | ``` 10 | 11 | Result: 12 | 13 | - **Link Title** 14 | http://example.com 15 | Link description here 16 | 17 | Please do _not_ strip whitespace for existing entries! 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Redux Ecosystem Links 2 | A categorized list of addon libraries for Redux, as well as other libraries that are closely related. 3 | 4 | This page overlaps with the [Ecosystem page](http://redux.js.org/docs/introduction/Ecosystem.html) in the Redux documentation, and the [Awesome-Redux](https://github.com/xgrommx/awesome-redux) list, but is much more comprehensive and includes more categories. 5 | 6 | Items listed in a category are generally in no specific order - just whatever sequence I happened to add them in. 7 | 8 | You may also be interested in my [React/Redux tutorials and resources collection](https://github.com/markerikson/react-redux-links). 9 | 10 | ## Table of Contents 11 | 12 | #### Core Redux Concepts 13 | 14 | - [Reducers](./reducers.md) 15 | - [Actions](./actions.md) 16 | - [Store](./store.md) 17 | - [Store - Persistence](store-persistence.md) 18 | - [Action/Reducer/Constant Generators](./action-reducer-generators.md) 19 | 20 | #### Advanced/Additional Redux Concepts 21 | 22 | - [Immutable Data](./immutable-data.md) 23 | - [Middleware](./middleware.md) 24 | - [Middleware - Async Behavior](middleware-async.md) 25 | - [Middleware - Network Requests](middleware-network-requests.md) 26 | - [Middleware - Sockets and Adapters](middleware-sockets-adapters.md) 27 | - [Side Effects](./side-effects.md) 28 | - [Side Effects - Functions](side-effects-functions.md) 29 | - [Side Effects - Generators](side-effects-generators.md) 30 | - [Side Effects - Observables](side-effects-observables.md) 31 | - [Side Effects - Reducers/Other](side-effects-other.md) 32 | - [Dev Tools](devtools.md) 33 | - [Testing](testing.md) 34 | - [Entity/Collection Management](entity-collection-management.md) 35 | - [Prebuilt Use Cases and Integration](use-cases.md) 36 | - [Utilities](utilities.md) 37 | - [Other Redux Resources](other-resources.md) 38 | 39 | #### Components and UI 40 | 41 | - [Component/Local State](component-state.md) 42 | - [Component Data Fetching and Preloading](component-data-fetching-preloading.md) 43 | - [Widgets](widgets.md) 44 | - [Forms](forms.md) 45 | - [Routing](routing.md) 46 | 47 | #### Redux-Based Libraries and Apps 48 | 49 | - [Applications and Examples](apps-and-examples.md) 50 | - [Project Scaffolding and CLIs](project-scaffolding.md) 51 | - [Library Integration and Bindings](./library-integration.md) 52 | - [Alternate Approaches and Variations](variations.md) 53 | -------------------------------------------------------------------------------- /actions.md: -------------------------------------------------------------------------------- 1 | ### Actions 2 | 3 | - Related pages: 4 | - [Action/Reducer/Constant Generators](action-reducer-generators.md): includes libraries that generate actions and reducers 5 | - [Use Cases](use-cases.md): includes libraries that provide their own actions for various domains 6 | - [Middleware](middleware.md): includes libraries that modify actions in some way 7 | 8 | 9 | #### Action Creation Utilities 10 | 11 | - **redux-actions** 12 | https://github.com/acdlite/redux-actions 13 | Flux Standard Action utilities for Redux. 14 | 15 | - **redux-namespaced-actions** 16 | https://github.com/skleeschulte/redux-namespaced-actions 17 | Wrapper for redux-actions to easily add namespaces to action types. 18 | 19 | - **Redux Actions Magic** 20 | https://github.com/felixmc/redux-actions-magic 21 | Syntax magic for the redux-actions module, meant to remove repetitive typing of action names, that might slightly reduce development time and bug generation. 22 | 23 | - **redux-actions-api-addon** 24 | https://github.com/jkusachi/redux-actions-api-addon 25 | Redux Actions add-on to support API Requests. Reduce boilerplate by auto dispatching Request, Success, and Failure Events 26 | 27 | - **actions** 28 | https://github.com/Legitcode/actions 29 | This is a utility for injecting actions in redux. The idea came from having a huge project with actions all over the place. What if we treated actions like routes and made a file with a list of them? 30 | 31 | - **redux-easy-actions** 32 | https://github.com/grigory-leonenko/redux-easy-actions 33 | Sugar library for creating Redux or Flux actions. 34 | 35 | - **Redux Action Helpers** 36 | https://github.com/keuller/redux-action-help 37 | Includes utility functionx to generate simple and dynamic actions. 38 | 39 | - **redux-action-types** 40 | https://github.com/ripeworks/redux-action-types 41 | Shortcut for making normal and async action types. 42 | 43 | - **redux-simple-actions** 44 | https://github.com/xiamidaxia/redux-simple-actions 45 | Create actions based on objects with functions 46 | 47 | - **async-redux-actions** 48 | https://github.com/spalger/async-redux-actions 49 | A simple wrapper around async redux actions. 50 | 51 | - **Faction** 52 | https://github.com/af/faction 53 | Utilities and conventions for managing Redux (or Flux) actions. Co-locate your action types and action creators and keep them DRY, automatically dispatch follow-up actions when your async actions complete, validate arguments sent to each actionCreator 54 | 55 | - **redux-purify** 56 | https://github.com/alpacaaa/redux-purify 57 | Allows definition of actions by passing named reducers in an object 58 | 59 | - **reduxr-obj-actions** 60 | https://github.com/chrisdavies/reduxr-obj-actions 61 | A utility to create auto-typed Redux actions from an object. 62 | 63 | - **redux-promise-thunk** 64 | https://github.com/kpaxqin/redux-promise-thunk 65 | Create thunk generator to dispatch Flux-Standard-Action in each phase of Promise. 66 | 67 | - **redux-api-action-creators** 68 | https://github.com/AlanFoster/redux-api-action-creators 69 | API Action Creators for Redux 70 | 71 | - **create-action** 72 | https://github.com/nkt/create-action 73 | Helpers for creating FSA compatible actions. 74 | 75 | - **action-names** 76 | https://github.com/Versent/action-names 77 | Utility functions to generate action name triplets for CRUD ops. 78 | 79 | - **redux-request** 80 | https://github.com/kongdigital/redux-request 81 | Redux-Request simplifies Restful API calls using redux. It follows the convention of "configuration" over "code" and is designed for applications that make a lot of API calls. 82 | 83 | - **redux-glue** 84 | https://github.com/jfairbank/redux-glue 85 | Glue together actions to create testable, sequenced actions. 86 | 87 | - **async-actions** 88 | https://github.com/doordash/async-actions 89 | Async action creator for use with redux and redux-thunk. Uses whatwg-fetch and dispatches IN_PROGRESS, SUCCESS, and FAIL events during the lifecycle of an async request. 90 | 91 | - **redux-actions-class** 92 | https://github.com/Lokua/redux-actions-class 93 | Create action creators and types with minimal redundancy. 94 | 95 | - **namespace-constants** 96 | https://github.com/cheton/namespace-constants 97 | Add namespace to Redux action type constants without name conflicts. 98 | 99 | - **redaxt** 100 | https://github.com/lifehackett/redaxt 101 | An opinionated declarative set of factory functions for creating Redux actions. 102 | 103 | - **redux-action-factory** 104 | https://github.com/kwirke/redux-action-factory 105 | Simple library for creating schema-validated Redux Actions (or thunks, promises, etc.). Powered by the awesomely awesome Schema-Inspector. 106 | 107 | - **redux-create-types** 108 | https://github.com/BerkeleyTrue/redux-create-types 109 | A better way to create namespaced action types. 110 | 111 | - **redux-thunk-actions** 112 | https://github.com/machadogj/redux-thunk-actions 113 | Easily create action creators for redux with redux-thunk. 114 | 115 | - **Actioner** 116 | https://github.com/yanick/actioner 117 | Actioner is a little utility to help define, manage and validate Redux actions, using json-schema. 118 | 119 | - **redux-create-action-types** 120 | https://github.com/tbranyen/redux-create-action-types 121 | Helps you create Redux action types, safely & easily. Helps define action types without duplication and provides some validation. 122 | 123 | - **redux-define** 124 | https://github.com/smeijer/redux-define 125 | Define action constants for Redux 126 | 127 | - **redux-action-validator** 128 | https://github.com/michael-martin-al/redux-action-validator 129 | Extensible class to validate Redux/Flux action properties and ensure consistency across large projects. 130 | 131 | - **archetype-actions** 132 | https://github.com/bahmutov/archetype-actions 133 | Create Redux actions with run time type checks via Archetype 134 | 135 | - **redux-create-actiontype** 136 | https://github.com/anvk/redux-create-actiontype 137 | Micro library for easy Action Types generation in Redux/React. 138 | 139 | - **redux-actions-helper** 140 | https://github.com/ariesjia/redux-actions-helper 141 | Utilities to create plain actions, actions with payloads, and actions that reference state. 142 | 143 | - **create-async-action** 144 | https://github.com/iamolegga/create-async-action 145 | Wrapper for redux-actions createAction function for better interaction with redux-promise-middleware 146 | 147 | - **redux-actions-defined** 148 | https://github.com/mattberkowitz/redux-actions-defined 149 | Utilities for defining Redux actions with schemas 150 | 151 | - **typescript-fsa** 152 | https://github.com/aikoven/typescript-fsa 153 | Action Creator library for TypeScript. Its goal is to provide simple yet type-safe experience with Flux actions. 154 | 155 | - **constant-factory** 156 | https://github.com/entwicklerstube/constant-factory 157 | Stop rewriting the constant name in each entry use a factory for this job 158 | 159 | - **redux-actioner** 160 | https://github.com/Shoptap/redux-actioner 161 | Inspired by Flux Standard Actions, this framework facilitates the implementation of Redux actions for the sake of simplicity, testing, and maintainability. 162 | 163 | - **namespaced-types** 164 | https://github.com/kokororin/namespaced-types 165 | Tiny utility to generated namespaced action constants 166 | 167 | - **action-creators** 168 | https://github.com/lsentkiewicz/action-creators 169 | Action creators utilities for Redux. Includes: parameter validation using joi, debug created actions using debug, no need to define constants, no duplicated namespaces, no duplicated action names. 170 | 171 | - **to-redux-type** 172 | https://github.com/Dash-OS/to-redux-type 173 | Converts camelCase to SCREAMING_SNAKE_CASE with special considerations for small differences 174 | 175 | - **redux-actions-namespace** 176 | https://github.com/fiberthrone/redux-actions-namespace 177 | Syntax sugar for using namespaces with redux-actions. 178 | 179 | - **redux-actions-api-addon** 180 | https://github.com/jkusachi/redux-actions-api-addon 181 | Redux Actions add-on to support API Requests. 182 | 183 | - **redux-helper** 184 | https://github.com/vgmr/redux-helper 185 | Action creator, promise action creator and checked promise middleware. 186 | 187 | - **redux-api-middleware-actions** 188 | https://github.com/christensena/redux-api-middleware-actions 189 | Strongly typed action creator functions for redux-api-middleware 190 | 191 | - **redux-action-types-creator** 192 | https://github.com/Darmody/redux-action-types-creator 193 | A simple utility to generate namespaced action types for sync and async actions 194 | 195 | - **redux-types-creator** 196 | https://github.com/shadowwzw/redux-types-creator 197 | A utility to generate type constants based on prefixes, suffixes, and main types. 198 | 199 | - **kreighter** 200 | https://github.com/maxhallinan/kreighter 201 | A utility for generating Redux action creators. 202 | 203 | - **redux-create-actions** 204 | https://github.com/adrianObel/redux-create-actions 205 | redux-create-actions is a library that helps construct FSA compliant action creators and massively decreasing the amount of boilerplate necessary to generate constants and action creators. 206 | 207 | - **redux-actions-helper** 208 | https://github.com/ariesjia/redux-actions-helper 209 | Assorted helper utilities for redux-actions. 210 | 211 | - **fsa-meta-extender** 212 | https://github.com/tomoyuki-tanaka/fsa-meta-extender 213 | A utility for Flux Standard Actions that adds meta fields to actions. 214 | 215 | - **redux-feline-actions** 216 | https://github.com/parakhod/redux-feline-actions 217 | An easy way to define Redux FSA action creators. 218 | 219 | - **magic-action-types** 220 | https://github.com/markalfred/magic-action-types 221 | Uses an ES6 Proxy to return action constants 222 | 223 | - **awral** 224 | https://github.com/Metnew/awral 225 | An "Awesome Wrapper for Redux Action's Lifecycle". Simplifies working with dispatching multiple actions for an async request. 226 | 227 | - **redux-pirate-actions** 228 | https://github.com/pirateminds/redux-pirate-actions 229 | Avoids generating action constants by using function names for the types. 230 | 231 | - **redux-actionz** 232 | https://github.com/goldenlynx/redux-actionz 233 | Similar to redux-actions, but with improvements and a new API. 234 | 235 | - **redux-act-dispatch-free** 236 | https://github.com/artalar/redux-act-dispatch-free 237 | Extends redux-act so that you can call async actions without dispatch. 238 | 239 | - **action-creator-mirror** 240 | https://github.com/TreekiCloud/action-creator-mirror 241 | A more effective way to organise Redux action creator codes, inspired by keymirror 242 | 243 | - **redan** 244 | https://github.com/danbahrami/redan 245 | Small utilities to simplify creating action creators for basic actions, errors, and thunks that dispatch start/success/failure actions. 246 | 247 | - **redux-promise-dispatch** 248 | https://github.com/kjrocker/redux-promise-dispatch 249 | Utilities to create thunk action creators that dispatch based on promise lifecycle. 250 | 251 | - **redux-ize** 252 | https://github.com/Meeshkan/redux-ize 253 | An implementation of the Redux Action Creator Creator pattern 254 | 255 | - **actiontypes** 256 | https://github.com/crvst/actiontypes 257 | Generate namespaced strings for Flux standard actions 258 | 259 | - **redux-harmony** 260 | https://github.com/jkbailey/redux-harmony 261 | Create thunks that call a promise-returning function and dispatch actions based on the results. 262 | 263 | - **redux-action-creators** 264 | https://github.com/doasync/redux-action-creators 265 | Configurable action creators for redux with sub-types 266 | 267 | - **redux-fast-actions** 268 | https://github.com/ozankasikci/redux-fast-actions 269 | A module to ease the pain of creating actions constants and action creator functions. 270 | 271 | - **redux-actiontyper** 272 | https://github.com/alnorris/redux-actiontyper 273 | Helper to create slightly less verbose redux action types. Uses ES6 Proxies! 274 | 275 | 276 | #### Other Action Use Cases 277 | 278 | - **redux-actionemitter** 279 | https://github.com/sgentle/redux-actionemitter 280 | An experimental module for representing Redux actions as events. In this model, reducers become observers, switch statements become event listeners, and dispatch() emits events. 281 | 282 | - **Redux Smart Action** 283 | https://github.com/stephan83/redux-smart-action 284 | SmartActions add a layer on top of actions to do things depending on whether an action would modify the state. When a SmartAction is called, it returns an object instead of dispatching immediately. The returned object tells you whether executing it would change the state, and a method to execute it. 285 | 286 | - **redux-bind-action-groups** 287 | https://github.com/eyasliu/redux-bind-action-groups 288 | A small utility to bind dispatch to nested objects full of action creators. 289 | 290 | - **redux-actions-hub** 291 | https://github.com/apentle/redux-actions-hub 292 | Share Redux Actions between modules 293 | 294 | - **redux-sources** 295 | https://github.com/amirmi/redux-sources 296 | Synthetic Sugar for consistently handling Ajax Calls in an async Redux Flow. 297 | 298 | - **Redux Action Wrapper** 299 | https://github.com/stutrek/redux-action-wrapper 300 | A recursive version of bindActionCreators 301 | 302 | - **debounce-action** 303 | https://github.com/jshanson7/debounce-action 304 | Create debounced redux-thunk actions 305 | 306 | - **throttle-action** 307 | https://github.com/jshanson7/throttle-action 308 | Create throttled redux-thunk actions 309 | 310 | - **redux-thunk-actions** 311 | https://github.com/machadogj/redux-thunk-actions 312 | Action creator for redux-thunk that handles sync and async functions. 313 | 314 | - **type-stash** 315 | https://github.com/DaneSirois/type-stash 316 | Redux type-management library. Removes the need for a dedicated "types" file. 317 | 318 | - **redux-nested-bind-actions** 319 | https://github.com/Jc160/redux-nested-bind-actions 320 | Based on Redux bindActionCreator. Turns an object whose values are action creators, into an object with the same keys, but with every function wrapped into a dispatch call so they may be invoked directly. 321 | 322 | - **redux-hoax** 323 | https://github.com/theJian/redux-hoax 324 | Higher-order action creators for Redux, allowing dispatching an action only once and creating payloads from app state. 325 | 326 | - **reducer-action-interceptor** 327 | https://github.com/jony89/reducer-action-interceptor 328 | This plugin allows you on one hand to intercept action creators in order to patch the action before bubbling up to the reducers, and on the other hand to intercept the reducers in order to take advantage of that interception. -------------------------------------------------------------------------------- /apps-and-examples.md: -------------------------------------------------------------------------------- 1 | ### Applications and Examples 2 | 3 | Note: This is not a comprehensive list of all projects using Redux, just a selection of reasonably-sized projects that looked interesting. 4 | 5 | 6 | #### Purpose-Built Demos and Examples 7 | 8 | - **React-Redux RealWorld Example: TodoMVC for the Real World** 9 | https://github.com/gothinkster/react-redux-realworld-example-app 10 | An example full-stack "real world" application built with Redux. Demos a Medium-like social blogging site that includes JWT authentication, CRUD, favoriting articles, following users, routing, and more. The RealWorld project also includes many other implementations of the front and back ends of the site, specifically intended to show how different server and client implementations of the same project and API spec compare with each other. 11 | 12 | - **Project Mini-Mek** 13 | https://github.com/markerikson/project-minimek 14 | A sample app to demonstrate various useful Redux techniques, accompanying the "Practical Redux" blog series at http://blog.isquaredsoftware.com/series/practical-redux 15 | 16 | - **Redux Saga Persistence Example** 17 | https://github.com/jportela/redux-saga-persistence 18 | This example shows how a persistence mechanism can be implemented by using Redux Sagas. 19 | 20 | - **Saga Login Flow** 21 | https://github.com/sotojuan/saga-login-flow 22 | This application demonstrates what a React-based register/login workflow might look like with Redux Saga. It's based on Max Stoiber's login-flow, but uses Redux Saga instead of Redux Thunk to handle asynchronous actions. 23 | 24 | - **Redux Saga Examples** 25 | https://github.com/kuy/redux-saga-examples 26 | A set of examples demonstrating usage of redux-saga (autocomplete, throttle, start-stop, backend integration) 27 | 28 | - **Lifegame Redux** 29 | https://github.com/kuy/lifegame-redux 30 | Conway's lifegame using Redux + various middlewares. (redux-saga, redux-logic, redux-observable, redux-loop, ...) 31 | 32 | - **Scalable Frontend with Elm or Redux** 33 | https://github.com/slorber/scalable-frontend-with-elm-or-redux 34 | Various user-submitted implementations of the "RandomGif" example app used to demonstrate the Elm Architecture and composable behavior, with comparisons between the different implementations. 35 | 36 | - **Redux Counter Example** 37 | https://ahmednuaman.github.io/redux-counter/ 38 | Examples of the same Redux app with front ends in Angular 1 / 2, React, Vue, and vanilla JS 39 | 40 | - **Redux ORM Draft View Example** 41 | https://github.com/cjke/react-example-1-redux-orm 42 | An example of using redux-orm with form state. The ability to edit and update model instances, that upon hitting cancel, doesn't update the core model instance. The flipside being, when hitting saved, the core model instance is updated. 43 | 44 | - **Tradux** 45 | https://github.com/miloszpp/tradux 46 | A sample real-time trading application built with Redux and Angular 2. 47 | 48 | - **Angular to React-Redux** 49 | https://github.com/GoTeamEpsilon/angular-to-react-redux 50 | An educational resource for Angular v1 experts that are looking to learn React/Redux. A contrived sample application for managing basic patient information is provided using both technologies' best practices. 51 | 52 | - **RealWorld: React/Redux Modular** 53 | https://github.com/j-hannes/realworld-react-redux-modular 54 | Another React/Redux implementation of the RealWorld example, demonstrating a modular/feature-based structure 55 | 56 | - **ReForum** 57 | https://github.com/shoumma/ReForum 58 | A forum application. Built with React, Redux, Express and MongoDB 59 | 60 | - **react-redux-complete-example** 61 | https://github.com/FortechRomania/react-redux-complete-example 62 | An example project based on the "re-ducks" folder structure proposal 63 | 64 | - **react-redux-yelp-clone** 65 | https://github.com/mohamed-ismat/react-redux-yelp-clone 66 | An adaptation of the "Yelp Clone" app by FullStackReact. It extends the original by using Redux and Redux Saga instead of local state, as well as React Router v4, styled-components, and other modern standards. Based on the React-Boilerplate starter kit. 67 | 68 | - **hacker-news-resolve** 69 | https://github.com/reimagined/resolve/tree/master/examples/hacker-news 70 | A Hacker News clone, built using the Resolve library that abstracts over React and Redux 71 | 72 | 73 | #### Applications 74 | - **MapStore2** 75 | https://github.com/geosolutions-it/MapStore2 76 | Modern webmapping with OL3, Leaflet, React, and Redux. 77 | 78 | - **census-search** 79 | https://github.com/ZachLiuGIS/census-search 80 | A geospatial census data search application built with ReactJS + Redux + Census CitySDK + OpenLayers3 81 | 82 | - **WordPress-Calypso** 83 | https://github.com/Automattic/wp-calypso 84 | The new JavaScript- and API-powered WordPress.com 85 | 86 | - **Gutenberg** 87 | https://github.com/WordPress/gutenberg 88 | A new "block editor"-based approach to creating Wordpress content. 89 | 90 | - **Panther** 91 | https://github.com/joshwcomeau/panther 92 | Panther is a full-stack React/Redux/Node web app that uses the Spotify API to make suggestions based on an initial user-specified artist. 93 | 94 | - **Relax** 95 | https://github.com/relax/relax 96 | New generation CMS on top of React, Redux and GraphQL. It features a live page builder based on components and a smart and easy way of binding dynamic data to them. 97 | 98 | - **Storyboard** 99 | https://github.com/guigrpa/storyboard 100 | End-to-end, hierarchical, real-time, colorful logs and stories. A library, plus a Chrome DevTools extension. 101 | 102 | - **Firefox DevTools - Memory Tool and Debugger** 103 | https://dxr.mozilla.org/mozilla-central/source/devtools/client/memory 104 | https://dxr.mozilla.org/mozilla-central/source/devtools/client/debugger 105 | Parts of the current Firefox DevTools debugger were rewritten using React and Redux 106 | 107 | - **Firefox DevTools - Network Monitor** 108 | https://github.com/mozilla/gecko-dev/tree/master/devtools/client/netmonitor 109 | The new Firefox DevTools network monitor tab, also rewritten using React and Redux 110 | 111 | - **Debugger.html** 112 | https://github.com/jlongster/debugger.html 113 | A prototype Firefox debugger, written without any XUL and based on React and Redux. 114 | 115 | - **Project Tofino** 116 | https://github.com/mozilla/tofino 117 | An experimental browser prototype, investigating new ideas and interactions. 118 | 119 | - **Guild Wars 2 Armory** 120 | https://github.com/madou/armory-react 121 | Allows GW2 players to share account, character, and guild information. 122 | 123 | - **Shifted Maps** 124 | https://github.com/FH-Potsdam/shifted-maps 125 | Shifted Maps visualizes personal movement data as a network of map extracts showing visited places. 126 | 127 | - **Audio Insights** 128 | https://github.com/jch254/audio-insights 129 | Audio insights derived from your Spotify library using React and Redux 130 | 131 | - **Theremin** 132 | https://github.com/lukephills/Theremin 133 | Browser based Theremin emulator using web audio, React, Redux, and Typescript 134 | 135 | - **Jenkins BlueOcean Plugin** 136 | https://github.com/jenkinsci/blueocean-plugin 137 | A new user experience and UI for Jenkins. The "Dashboard" and "Web" pieces are built on React and Redux. 138 | 139 | - **Neos CMS UI rewrite** 140 | https://github.com/PackageFactory/PackageFactory.Guevara 141 | New user interface for Neos CMS built with React and Redux. This is an ongoing project, and it is open to new contributors. 142 | 143 | - **CarteJaune** 144 | https://github.com/nikgraf/CarteJaune 145 | A React Native/Redux (+Saga) application to keep track of your vaccinations 146 | 147 | - **HyperTerm** 148 | https://github.com/zeit/hyperterm 149 | A beautiful and extensible experience for command-line interface users, built on open web standards. 150 | 151 | - **Phoenix Trello** 152 | https://github.com/bigardone/phoenix-trello 153 | Trello tribute done in Elixir, Phoenix Framework, React and Redux. 154 | 155 | - **io-808** 156 | https://github.com/vincentriemer/io-808 157 | An attempt at a fully recreated web-based TR-808 drum machine 158 | 159 | - **portfolio** 160 | https://github.com/tsurupin/portfolio 161 | A blog and Portfolio CMS built with Rails, React, Redux, Material-UI, CSS Modules 162 | 163 | - **Linode Manager** 164 | https://github.com/Linode/manager 165 | Linode's new account management application 166 | 167 | - **Boostnote** 168 | https://github.com/BoostIO/Boostnote 169 | A cross-platform Electron-based app for Markdown note management 170 | 171 | - **Popcode** 172 | https://github.com/popcodeorg/popcode 173 | Popcode is a simple HTML/CSS/JavaScript editing environment for use in the classroom. It's a lot like JSBin, JSFiddle, or Codepen, but it focuses on giving specific, immediate, human-friendly feedback when the code contains errors. 174 | 175 | - **key-and-pad** 176 | https://github.com/joshwcomeau/key-and-pad 177 | A Web Audio experiment, featuring a keyboard-controlled synthesizer and a mouse-controlled X/Y pad (eg. kaoss pad). Built with React and Redux. 178 | 179 | - **Functional Asteroids** 180 | https://github.com/philpee2/Functional-Asteroids 181 | An Asteroids clone built with functional programming, React, and Redux 182 | 183 | - **Rubix** 184 | https://github.com/Zacqary/rubix 185 | A Rubik's Cube built with CSS Animations, React, and Redux 186 | 187 | - **Monitaure** 188 | https://github.com/Bertrand31/Monitaure 189 | Monitaure is an online service aiming to provide SysAdmins with a clean, lightweight and quick to configure monitoring dashboard. 190 | 191 | - **Winds** 192 | https://github.com/getstream/winds 193 | Winds is an open source & beautiful RSS reader built using React/Redux/Sails/Node 7 and Stream. 194 | 195 | - **Pegs** 196 | https://github.com/roonyh/pegs 197 | Peg Solitaire for the browser 198 | 199 | - **Windrift** 200 | https://github.com/lizadaly/windrift 201 | A JS framework for writing mutable stories. Windrift was used to write Stone Harbor, an entry in the 2016 Interactive Fiction Competition. 202 | 203 | - **Agora** 204 | https://github.com/ryo33/Agora 205 | A platform for online communities. Built with React/Redux/Elixir. Real world usage of redux-saga, redux-logic, react-router, react-router-redux, redux-act, and redux-persist. 206 | 207 | - **Ory Editor** 208 | https://github.com/ory-am/editor 209 | A digital content editor with a plugin architecture, built with React and Redux. 210 | 211 | - **SoundMoose** 212 | https://github.com/SoundMoose/SoundMoose 213 | SoundMoose is a non-commercial music platform where you can listen to and discover new music. Create an account to access saved playlists, add tracks to your favorites, and play a "Guess the song" game with your friends! Code is based on TypeScript, Angular 2, ngrx/store, Ruby, and Django. 214 | 215 | - **Sound-Redux** 216 | https://github.com/andrewngu/sound-redux 217 | A Soundcloud client built with React / Redux 218 | 219 | - **madClones** 220 | https://github.com/Madmous/madClones 221 | A mono repo that contains the latest and the hottest frameworks with a strong focus on clean code, testing, software architecture/design and devops. The Trello clone client is written using React + Redux. 222 | 223 | - **Gitter Mobile** 224 | https://github.com/JSSolutions/GitterMobile 225 | An unofficial Gitter.im client for iOS and Android, built with React Native and Redux 226 | 227 | - **Vataxia** 228 | https://github.com/buckyroberts/Vataxia-Frontend 229 | Vataxia is an open source Reddit-like social network written in React and Redux. 230 | 231 | - **Asteredux** 232 | https://github.com/funkjunky/reduxgame 233 | An Asteroids game with friction and terminal velocity. Built with Redux and a canvas. 234 | 235 | - **Builify** 236 | https://github.com/builify/builify 237 | A visual, block-based, static website creator 238 | 239 | - **Winamp2-js** 240 | https://jordaneldredge.com/projects/winamp2-js/ 241 | https://github.com/captbaritone/winamp2-js 242 | An in-browser recreation of Winamp2, built with React and Redux. Actually plays MP3s, and lets you load in local MP3 files. 243 | 244 | - **pandemic** 245 | https://github.com/alexzherdev/pandemic 246 | A Redux-based implementation of the board game Pandemic. 247 | 248 | - **Lepton** 249 | https://github.com/hackjutsu/Lepton 250 | A lean Electron-based snippet manager for Github gists. 251 | 252 | - **Tello** 253 | https://github.com/joshwcomeau/Tello 254 | A simple and delightful way to track and manage TV shows 255 | 256 | - **tycho2** 257 | https://github.com/jshor/tycho2 258 | A real-time, WebGL-based, 3D visualization of our Solar System. Built with React, Redux, THREE.js, and the react-three-renderer. 259 | 260 | - **DM Tools** 261 | https://github.com/fersot100/DM_Tools 262 | A cross-platform electron application that runs as a window locally on your machine and helps you the Dungeon Master, manage your role playing sessions by removing a lot of the encumberments that come with pen traditional pen and paper approaches. 263 | 264 | - **Joplin** 265 | https://github.com/laurent22/joplin 266 | A note taking and to-do application with synchronization capabilities for Windows, macOS, Linux, Android and iOS. 267 | 268 | - **boardgame.io** 269 | https://github.com/google/boardgame.io 270 | A toolkit for building server-synchronized turn-based multiplayer games 271 | 272 | - **axis-and-allies** 273 | https://github.com/bgates/axis-and-allies 274 | A React+Redux implementation of the Axis and Allies board game 275 | 276 | - **Mattermost** 277 | https://github.com/mattermost/mattermost-webapp 278 | An open source, self-hosted Slack alternative 279 | 280 | - **LWJGL 3 website** 281 | https://github.com/LWJGL/lwjgl3-www 282 | The home page for Lightweight Java Game Library 3 283 | 284 | - **Soundize** 285 | https://github.com/Alexloof/Soundize 286 | A homemade server side rendering client made with React and Redux, powered by the Spotify API 287 | 288 | - **nteract** 289 | https://github.com/nteract/nteract 290 | A desktop application for running Jupyter notebooks 291 | 292 | - **oni** 293 | https://github.com/onivim/oni 294 | Oni is a new kind of editor, focused on maximizing productivity - combining modal editing with features you expect in modern editors. Oni is built with neovim, and inspired by VSCode, Atom, LightTable, and Emacs 295 | 296 | - **posthumus** 297 | https://github.com/praghus/posthumus 298 | A 2D side-scroller zombie shooting game, built with React, Redux, and a lot of canvas rendering logic 299 | 300 | - **react-lumines** 301 | https://github.com/geniusgordon/react-lumines 302 | A classic block-dropping game rewritten in React and Redux 303 | 304 | - **tweet-tray** 305 | https://github.com/jonathontoon/tweet-tray 306 | A small application which allows you to tweet from your desktop system tray or status bar, without any further distractions. The core technology used consists of Electron, React + Redux and Styled Components. 307 | 308 | - **pixelpusher** 309 | https://github.com/automerge/pixelpusher 310 | https://medium.com/@pvh/pixelpusher-real-time-peer-to-peer-collaboration-with-react-7c7bc8ecbf74 311 | A real-time, peer-to-peer pixel-based drawing application 312 | 313 | - **Deer** 314 | https://github.com/abahmed/Deer 315 | Deer is a modern, fast, beautiful note taking app. Write down your thoughts and ideas quickly and easily on Linux, Mac and Windows. 316 | 317 | 318 | #### Other Application Lists 319 | 320 | - **"Ask HN: Open source projects written in React?"** 321 | https://news.ycombinator.com/item?id=12802121 322 | An HN thread listing open-source React projects, several of which are written using Redux as well. 323 | 324 | - **React Apps and Libraries List** 325 | https://gist.github.com/sAbakumoff/7b8510adcb16bded189d747e34f5e114 326 | https://medium.com/@sAbakumoff/react-entourage-6d51e7df9944 327 | A giant list of apps that depend on React, generated using Google BigQuery searches of Github data. A number of them use Redux. 328 | 329 | - **Real World React Apps** 330 | https://github.com/jeromedalbert/real-world-react 331 | A repo that rounds up a variety of real-world React apps as git submodules, so you can learn from the codebases: 332 | 333 | 334 | #### Redux Usage Stories 335 | 336 | - **Lystable: Real World Redux** 337 | https://speakerdeck.com/chrisui/real-world-redux 338 | Explores the real world experiences of using Redux everyday within a rapidly scaling team and product. 339 | 340 | - **KarmaCRM: Launching an Enterprise React & Redux App – Part 1** 341 | http://jpnarowski.com/enterprise-react-redux-part-1/ 342 | A combination tutorial and lessons learned series. 343 | 344 | - **WaveHQ** 345 | https://twitter.com/NickPresta/status/684058236828266496 346 | "We use Redux on our core project.... for scale, we have ~500 action types, ~400 reducer cases, ~150 components, 5 middlewares, ~200 actions, ~2300 tests" 347 | 348 | - **Neos CMS Goes for a Full UI Rewrite with React and Redux** 349 | http://dimaip.github.io/2016/03/13/neos-react-redux-rewrite/ 350 | Gives an overview of the Neos CMS codebase, and the reasoning for a code rewrite. 351 | 352 | - **Reddit frontend engineering team AMA** 353 | https://www.reddit.com/r/webdev/comments/5c2vie/were_reddits_frontend_engineering_team_ask_us/ 354 | https://www.reddit.com/r/webdev/comments/5c2vie/were_reddits_frontend_engineering_team_ask_us/d9tbjtt/ 355 | Very informative Q&A with Reddit's frontend developers, with some very-indepth answers regarding their usage of React and Redux. 356 | 357 | - **Redux for Realtime Gaming** 358 | https://www.youtube.com/watch?v=zo39p-30arg 359 | A presentation discussing how Redux was used to help build a competitive biking application 360 | -------------------------------------------------------------------------------- /component-data-fetching-preloading.md: -------------------------------------------------------------------------------- 1 | ### Component Data Fetching And Preloading 2 | 3 | 4 | - **react-composer** 5 | https://github.com/kadirahq/react-komposer 6 | Creates React container components that know how to fetch data from arbitrary data sources, including Promises, RxJS observables, Meteor's Tracker, or Redux stores 7 | 8 | - **Adrenaline** 9 | https://github.com/gyzerok/adrenaline 10 | Adrenaline intend to provide you Relay-like ability to describe your components with declarative data requirements, while keeping API as simple as possible. You are free to use it with different libraries like Redux, React Router and etc. 11 | 12 | - **redux-falcor** 13 | https://github.com/ekosz/redux-falcor 14 | redux-falcor helps connect your Redux applications to your Falcor API. 15 | 16 | - **redux-loader** 17 | https://github.com/Versent/redux-loader 18 | A high order component and request management utility for Redux. Loads resources and passes them to the child components via props. Keeps tracks of requests already done and avoids duplicate requests. 19 | 20 | - **react-reach** 21 | https://github.com/kennetpostigo/react-reach 22 | react-reach is designed to be used along side redux and react. React-reach works as the layer that handles communication of data between React and graphQL. Reach enables developers to make queries and mutations against GraphQL. 23 | 24 | - **firedux** 25 | https://github.com/adjohnson916/firedux 26 | Wraps the Firebase JavaScript API to dispatch Redux actions that optimisically & immediately read/write to an in-memory subset of your data from Firebase, then asynchronously pull & push data in the background. 27 | 28 | - **AutoAction** 29 | https://github.com/tonyhb/autoaction 30 | Declarative data loading and action calling within react-redux 31 | 32 | - **redux-preheat** 33 | https://github.com/mikew/redux-preheat 34 | A helpful decorator to run Redux actions in universal React apps with support for Promises. 35 | 36 | - **GroundControl** 37 | https://github.com/raisemarketplace/ground-control 38 | GroundControl simplifies React-Router/Redux single page applications. Organizes reducers based on route structure, and builds application state & replaces reducers on transition. Data fetching API to control when to render components & manage client / server differences (Universal API). 39 | 40 | - **ReduxAsyncConnect** 41 | https://github.com/Rezonans/redux-async-connect 42 | It allows you to request async data, store them in redux state and connect them to your react component. 43 | 44 | - **redux-connect** 45 | https://github.com/makeomatic/redux-connect 46 | Fork and refactor of redux-async-connect 47 | 48 | - **Redux Data Loader** 49 | https://github.com/kouhin/redux-dataloader 50 | Loads async data for Redux apps focusing on preventing duplicated requests and dealing with async dependencies. Deeply inspired by Alt Data Sources API, also inspired by redux-saga. 51 | 52 | - **redux-filter** 53 | https://github.com/nsmith7989/redux-filter 54 | Higher Order React Component for filtering (and sorting) a collection of items. This is especially useful in product filters that mimic the sorting/filtering behavior of Amazon or Best Buy. 55 | 56 | - **Redux Connected PropTypes** 57 | https://github.com/conorhastings/redux-connected-proptypes 58 | Redux Connected PropTypes consumes a React Component(with propTypes) and returns a connected version of that component in react-redux parlance with the props defined on the compoents propTypes injected into the component instance from the redux global state. 59 | 60 | - **react-redux-resolve** 61 | https://github.com/martijndeh/react-redux-resolve 62 | Experimental library to universally resolve your component's initial data. Per component you can specify a resolver. On the client side, the resolver is executed in componentDidMount() and on the server-side once you call waitForResolves(renderProps, store). This makes server-side rendering easy to implement 63 | 64 | - **react-gql** 65 | https://github.com/leeching/react-gql 66 | A collection of helper functions to build a react app with redux and graphql. 67 | 68 | - **Relate** 69 | https://github.com/relax/relate 70 | Relate is a library built to use together with Redux and GraphQL. You can think of it as an alternative to Relay for Redux. It extends the React Redux's connect where you can additionally specify your container's data needs. Relate will resolve each container data needs automatically and provides it to each one the data they requested. 71 | 72 | - **redux-async-props** 73 | https://github.com/AlastairTaft/redux-async-props 74 | A simple way to load props and state asynchonously with react-router and redux. 75 | 76 | - **react-reflorp** 77 | https://github.com/tomat/react-reflorp 78 | A simple ORM using React Refetch as a backend, but the data is stored in the Redux store. 79 | 80 | - **redux-taxi** 81 | https://github.com/nytimes/redux-taxi 82 | ReduxTaxi allows for component-driven asynchronous server-side rendering in isomorphic/universal React+Redux apps. 83 | 84 | - **redux-data** 85 | https://github.com/dmin/redux-data 86 | Redux-Data is a companion to Redux that allows you to declare the data (i.e. records from your server) that your application uses. Redux-Data helps you query and cache data as well as perform mutations on the data. 87 | 88 | - **redux-fetch-data** 89 | https://github.com/nordsoftware/redux-fetch-data 90 | Redux utility library for fetching data using promises on both server and client 91 | 92 | - **redial** 93 | https://github.com/markdalgleish/redial 94 | Universal data fetching and route lifecycle management for React. 95 | 96 | - **react-refetch** 97 | https://github.com/heroku/react-refetch 98 | A simple, declarative, and composable way to fetch data for React components 99 | 100 | - **react-relay-redux** 101 | https://github.com/Aweary/react-relay-redux 102 | Redux integration for Relay. react-relay-redux lets you listen and respond to Relay queries and mutations using Redux actions and reducers. 103 | 104 | - **Roulade** 105 | https://github.com/nerdgrass/roulade 106 | Roulade is a library to enable React & Redux applications to easily work with GraphQL servers. 107 | 108 | - **react-redux-pledge** 109 | https://github.com/PCreations/react-redux-pledge 110 | Enhance your redux-connected component by rendering them only when their props are guaranteed (i.e, relative data are fetched) 111 | 112 | - **react-redux-promise** 113 | https://github.com/rainforestapp/async-state-components 114 | A set of tools to link react component to the lifecycle of a promise 115 | 116 | - **react-redux-universal-resolver** 117 | https://github.com/Tarabyte/react-redux-universal-resolver 118 | Yet another universal redux based higher order component for React 119 | 120 | - **redux-data-fetching** 121 | https://github.com/alanzanattadev/redux-data-fetching 122 | Automatic data managment with caching and auto merging of cached data and fetched one, based on GraphQL. 123 | 124 | - **redux-resource-manager** 125 | https://github.com/rolyatmax/redux-resource-manager 126 | A Redux wrapper that helps manage external resources in a client-side application. 127 | 128 | - **redux-async-loader** 129 | https://github.com/recruit-tech/redux-async-loader 130 | Async data loader for Redux apps with React-Router. 131 | 132 | - **react-redux-fetch** 133 | https://github.com/hirviid/react-redux-fetch 134 | A declarative and customizable way to fetch data for React components and manage that data in the Redux state. 135 | 136 | - **redux-fetch** 137 | https://github.com/flowcommerce/redux-fetch 138 | Redux Fetch provides universal data fetching bindings for applications built with React, React Router, and Redux. 139 | 140 | - **redux-saga-fetcher** 141 | https://github.com/ntkoso/redux-saga-fetcher 142 | redux-saga-fetcher is an universal data fetching library for Redux Saga and React Router. 143 | 144 | - **redux-lazy-props** 145 | https://github.com/markshlick/redux-lazy-props 146 | Lazy fetching of data for connected components. 147 | 148 | - **async-props** 149 | https://github.com/manaflair/async-props 150 | Easy React/Redux data preload 151 | 152 | - **graphdux** 153 | https://github.com/Mobelux/graphdux 154 | A graphql/redux integration toolkit 155 | 156 | - **falcor-provider** 157 | https://github.com/jameslaneconkling/falcor-provider 158 | Redux provider to connect your falcor graph to your redux store 159 | 160 | - **redux-router-preload** 161 | https://github.com/babotech/redux-router-preload 162 | Universal preloading for redux-router 163 | 164 | - **subscription-container** 165 | https://github.com/remedux/subscription-container 166 | A React component that dispatches start and stop Redux actions to drive a meteor subscription 167 | 168 | - **hoc-data-redux** 169 | https://github.com/krzysztof4M/hoc-data-redux 170 | Higher Order Component for fetching initial data in Redux 171 | 172 | - **redux-wait-for-action** 173 | https://github.com/Chion82/redux-wait-for-action 174 | Redux middleware to make store.dispatch() return a promise which will be resolved when another specified action is dispatched, which is useful for universal(isomorphic) React Web Apps with redux and server-side rendering. 175 | 176 | - **redux-promise-wait** 177 | https://github.com/nealgranger/redux-promise-wait 178 | An indispensable tool for rendering Redux apps on the server. Uses a store enhancer to run a callback function repeatedly until the Redux store state settles when all chains of asynchronous actions have resolved. 179 | 180 | - **redux-universal** 181 | https://github.com/reducks/redux-universal 182 | A Redux store enhancer taking care of promise resolution for building universal apps. 183 | 184 | - **react-graphql-redux** 185 | https://github.com/youknowriad/react-graphql-redux 186 | This library allows you to use GraphQL to query your Redux store 187 | 188 | - **link-redux** 189 | https://github.com/fletcher91/link-redux 190 | Linked Data Rendering for humans, on React/Redux. Use this to enable Link in React. It provides components to build data-independent semantic applications for the human consumption of linked data with React and Redux. 191 | 192 | - **fetch-data** 193 | https://github.com/unfold/fetch-data 194 | Declarative data fetching for Redux and React. 195 | 196 | - **redux-promise-counter** 197 | https://github.com/bitgenics/redux-promise-counter 198 | Keep track of unresolved promises in Redux Actions. Useful for Server Side Rendering. 199 | 200 | - **tectonic** 201 | https://github.com/tonyhb/tectonic 202 | A declarative REST data loader for React/Redux 203 | 204 | - **react-quest** 205 | https://github.com/djgrant/redux-quest 206 | Declarative data fetching for universal React/Redux apps. 207 | 208 | - **redux-query** 209 | https://github.com/amplitude/redux-query 210 | A library for querying and managing network state in React/Redux applications. Lets you declare your network dependencies right next to your React components. 211 | 212 | - **react-prepare** 213 | https://github.com/elierotenberg/react-prepare 214 | react-prepare allows you to have you deeply nested components with asynchronous dependencies, and have everything just work with server-side rendering. 215 | 216 | - **redux-async-load** 217 | https://github.com/Pop-Code/redux-async-load 218 | This module merges the logic of loading data on the client side and the server side. 219 | 220 | - **redux-ready** 221 | https://github.com/djgrant/redux-ready 222 | Enhances your redux store with a store.ready() method, which resolves once all promises dispatched into the store are fulfilled. Very handy for server rendering redux applications that initialise with async actions. 223 | 224 | - **react-arc** 225 | https://github.com/Sunny-fr/react-arc 226 | React Abstract Redux Component: A set of components to manage collection or model from a REST service 227 | 228 | - **redux-hydration** 229 | https://github.com/jessedrelick/redux-hydration 230 | A combination of a Redux Reducer, a HOC for dynamically loading components, and a declarative way to define what Redux actions are needed to resolve state prior to sending to the finally rendered view to the client. 231 | 232 | - **redux-preload** 233 | https://github.com/blueberryapps/redux-preload 234 | Preload actions on both server & client side (allows deep nesting of components) 235 | 236 | - **redux-fetchers** 237 | https://github.com/LIQIDTechnology/redux-fetchers 238 | Automatic action dispatching and caching for Redux. Let components automatically fetch their needed data. 239 | 240 | - **redux-autoloader** 241 | https://github.com/woltapp/redux-autoloader 242 | A higher order component for declarative data loading in React and Redux. 243 | 244 | - **artemisajs** 245 | https://github.com/javierfernandes/artemisajs 246 | Artemisa extends React+Redux with the ability to model interaction with the backend (aka fetches) in a declarative way, reducing boilerplate code and providing a framework with (potential) functionality on the local storage and sync of the data with the back (cache). 247 | 248 | - **motel** 249 | https://github.com/greim/motel 250 | Motel is an implementation of the data vacancy pattern, which simplifies data-fetching in Flux-style apps. It was designed with Redux in mind, but can be used in any model-view-update app. 251 | 252 | - **redux-preload** 253 | https://github.com/BTMPL/redux-preload 254 | A small loader HoC that helps you defer the rendering of your Components until an (asynchronous) action or actions finish. 255 | 256 | - **react-redux-component-init** 257 | https://github.com/mediamonks/react-redux-component-init 258 | A library to manage react component initialization in isomorphic applications using Redux 259 | 260 | - **redux-fetch-on-mount** 261 | https://github.com/orzarchi/redux-fetch-on-mount 262 | A higher order component that performs a redux action when the wrapped component is mounted 263 | 264 | - **redux-api-react-switch** 265 | https://github.com/xurei/redux-api-react-switch 266 | A set of React components to show different content based on the state of a resource fetch. It is meant to be used with redux-api, but it can be used with any other library. 267 | 268 | - **redux-refetch** 269 | https://github.com/scwe/redux-refetch 270 | A simple automated data refetcher for using react-redux. The basic use case is when you have some data that needs to be refetched anytime there is a change in some of the underlying properties. 271 | 272 | - **redux-collect-promises** 273 | https://github.com/zumb/redux-collect-promises 274 | Collect redux promises and wait for resolution for server side rendering 275 | 276 | - **redux-async-fetcher** 277 | https://github.com/wing-eu/redux-async-fetcher 278 | ReduxAsyncFetcher is used to extract data fetching logic from your component lifecycle. 279 | 280 | - **redux-anity** 281 | https://github.com/sseppola/redux-anity 282 | Handle data dependencies declaratively. The idea is to stop writing data fetching in your components, and instead make the middleware do the work. 283 | 284 | - **fetch-hoc-redux** 285 | https://github.com/rvlewerissa/fetch-hoc-redux 286 | Simple Fetching Higher Order Component with Redux integration. It will cache your fetch automatically. 287 | 288 | - **react-redux-fetch-if-necessary** 289 | https://github.com/carpeliam/react-redux-fetch-if-necessary 290 | Higher order component for managing the concern of making sure your dependencies are loaded before you render 291 | 292 | - **redux-universal-render** 293 | https://github.com/StefanoPastore/redux-universal-render 294 | Redux module for universal render with async fetching data. 295 | 296 | - **redux-infuse** 297 | https://github.com/meruhealth/redux-infuse 298 | Simple way to manage data loading from APIs into Redux state and into connected components. 299 | 300 | - **react-apollo-redux** 301 | https://github.com/Drawbotics/react-apollo-redux 302 | A small wrapper to automatically dispatch actions in response to apollo mutations. 303 | 304 | - **tpt-connect** 305 | https://github.com/TeachersPayTeachers/tpt-connect 306 | TpT-Connect is a Redux extension which creates simple interfaces for your React components' to interact with your RESTful API. TpT-Connect automatically fetches your components' data dependencies on componentWillMount and componentDidUpdate when relevant props are changed so you don't have to worry about when and how to fetch your data. To make your resources available across multiple components, TpT-Connect normalizes and caches your resources in its Redux state. 307 | 308 | - **redux-obtain** 309 | https://github.com/robertsonmcclure/redux-obtain 310 | redux-obtain works with React Redux to coordinate getting data from a server using React component lifecycles to manage the asychronous actions and Redux to store all of its state. -------------------------------------------------------------------------------- /entity-collection-management.md: -------------------------------------------------------------------------------- 1 | ### Entity/Collection Management 2 | 3 | **Related Topics** 4 | 5 | - [Utilities - Data Manipulation and Normalization](utilities.md#data-manipulation-and-normalization) 6 | 7 | 8 | #### Client-Only Collections 9 | 10 | - **redux-orm** 11 | https://github.com/tommikaikkonen/redux-orm 12 | A small, simple and immutable ORM to manage relational data in your Redux store. Provides a Model-like interface on top of a portion of your store, allowing you to define relations between Models, store values as "tables" in your state, and make immutable updates by assigning values to Model fields. 13 | 14 | - **redux-entities-reducer** 15 | https://github.com/luskhq/redux-entities-reducer 16 | A Redux reducer for handling entities 17 | 18 | - **redux-collector** 19 | https://github.com/gtg092x/redux-collector 20 | Easy Collection Reducers for Redux. 21 | 22 | - **redux-simple-models** 23 | https://github.com/mrmagooey/redux-simple-models 24 | Prebuilt actions, reducers, and selectors to handle storing model types 25 | 26 | - **entman** 27 | https://github.com/Drawbotics/entman 28 | A simple library to manage normalizr entities in a redux store 29 | 30 | - **redux-resources** 31 | https://github.com/travisbloom/redux-resources 32 | An opinionated set of reducers, actions, and selectors to manage creating, getting, listing, updating, and deleting remote resources. 33 | 34 | - **cape-redux-collection** 35 | https://github.com/cape-io/cape-redux-collection 36 | Redux functions for managing lists of stuff. Collections are lists of items. This module helps manage lists of items with redux and redux-graph. 37 | 38 | - **redux-entity** 39 | https://github.com/mikechabot/redux-entity 40 | redux-entity seeks to provide a scalable, predictable approach to maintaining domain entities in Redux. It's comprised of a reducer and a thunk. 41 | 42 | - **redux-normalized-entities** 43 | https://github.com/mcollis/redux-normalized-entities 44 | Prewritten reducer and selectors for retrieving and updating normalized entities 45 | 46 | - **redux-async-collection** 47 | https://github.com/QubitProducts/redux-async-collection 48 | Creates a reducer, immutable state and actions for an async collection 49 | 50 | - **Redux CRUD** 51 | https://github.com/Versent/redux-crud 52 | Redux CRUD is a convention driven way of building CRUD applications using Redux. It gives you a standard set of action types, actions, and reducers. 53 | 54 | - **Redux Easy CRUD** 55 | https://github.com/JacquesBonet/redux-easy-crud 56 | redux-easy-crud is a library based on redux-crud. It provides helper functions to speed redux crud application development. 57 | 58 | - **redux-models** 59 | https://github.com/vshushkov/redux-models 60 | Models layer for Redux. 61 | 62 | - **redux-immutable-collections** 63 | https://github.com/jcoreio/redux-immutable-collections 64 | Reducers and actions for storing collections of documents in Immutable.js collections in Redux state. Designed for Mongo documents, but potentially useful even if you're not using Mongo. 65 | 66 | - **crudux** 67 | https://github.com/SpinGo/crudux 68 | Crudux is an attempt to dry up applications using Redux. We noticed we kept rewriting the basic entity reducers/selectors. From those applications I've distilled some basic principals into crudux. Keeps request metadata state, handles paging, doesn't mess with your entities. 69 | 70 | - **redux-patterns** 71 | https://github.com/piersadrian/redux-patterns 72 | A set of actions and reducers for CRUD REST handling 73 | 74 | - **entities-reducer** 75 | https://github.com/kwelch/entities-reducer 76 | Redux high order reducer for normalized flux-standard-actions. Allows for updates to entities in state. Accepts custom reducers for further control. 77 | 78 | - **redux-normalizr-utils** 79 | https://github.com/andriichumak/redux-normalizr-utils 80 | A set of helpers when working with redux and normalizr. Includes a pre-written reducer to apply updates to an "entities" slice. 81 | 82 | - **erebus** 83 | https://github.com/lab009/erebus 84 | Dead-simple entity API actions for Redux 85 | 86 | - **enty** 87 | https://github.com/blueflag/enty 88 | Normalized Entity Management for Redux. Instead of you manually storing requested data, Enty uses schemas to describe relationships and stores the data as normalized entities. 89 | 90 | - **redux-collect** 91 | https://github.com/cpnota/redux-collect 92 | A utility for converting Redux reducers, selectors, and action creators to handle a collection. 93 | 94 | - **redux-select-entities** 95 | https://github.com/Kilix/redux-select-entities 96 | Simple abstraction over normalizr and reselect to handle normalized entities 97 | 98 | - **immutable-redux-relationships** 99 | https://github.com/l2silver/immutable-redux-relationships 100 | Actions and handlers for immutable relationships operations 101 | 102 | - **immutable-redux-crud** 103 | https://github.com/l2silver/immutable-redux-crud 104 | Actions and handlers for immutable crud operations 105 | 106 | - **redux-data-collections** 107 | https://github.com/heygrady/redux-data-collections 108 | Redux actions, reducers and selectors for managing data in JSONAPI format. 109 | 110 | - **redux-entity-box** 111 | https://github.com/haotangio/redux-entity-box 112 | Lightweight Redux reducer saving a lot of code spent for basic CRUD operation on normalized Redux entity state 113 | 114 | - **Redux Entities** 115 | https://github.com/itsmepetrov/redux-entities 116 | Higher-order reducer for store entities received from normalizr and makes it easy to handle them. 117 | 118 | - **redux-scalable** 119 | https://github.com/p2kmgcl/redux-scalable 120 | A set of reducers, selectors, middlewares and action creators that allows managing a predictable, scalable and easy to use Redux state 121 | 122 | - **redux-entity-config** 123 | https://github.com/TheGnarCo/redux-entity-config 124 | Redux Entity Config provides actions and reducers to help manage entities in state (ie posts, users, etc.). Most entities require the same crud methods and are stored in a similar manner in state allowing this behavior to be extracted to a common configuration class. 125 | 126 | - **redux-entitize** 127 | https://github.com/leoselig/redux-entitize 128 | Simple actions and reducers for managing entities 129 | 130 | - **normalizr-utils** 131 | https://github.com/ascension/normalizr-utils 132 | A set of util/helper functions to reduce the amount of boilerplate code when working with Normalizr. 133 | 134 | - **redux-db** 135 | https://github.com/msolvaag/redux-db 136 | redux-db provides a normalized redux store and easy object management. Inspired by libraries such as normalizr and redux-orm, redux-db will give a similiar workflow with a smaller footprint and no dependencies. 137 | 138 | - **redux-modular-models** 139 | https://github.com/bobwei/redux-modular-models 140 | Manage models state for CRUD with ease. 141 | 142 | - **redux-entity-helpers** 143 | https://github.com/inkOfPixel/redux-entity-helpers 144 | Helpers for managing normalized redux entities 145 | 146 | - **redux-crud-resources** 147 | https://github.com/zpfled/redux-crud-resources 148 | Programmatically generate actions, action creators, and reducers for a given list of resources 149 | 150 | - **redux-crud-model** 151 | https://github.com/bamlab/redux-crud-model 152 | Generate reducer, actions creators and selectors to easily handle entity crud operation 153 | 154 | - **redux-majic** 155 | https://github.com/mduleone/redux-majic 156 | Module Architecture for JsonAPI Ingesting Consumers. Provides functions to parse JSON-API responses, and actions/reducers/selectors to interact with those entities. 157 | 158 | - **reduxsauce-crud** 159 | https://github.com/AlexHenkel/reduxsauce-crud 160 | Adaptation of the reduxsauce utils to add CRUD functionality 161 | 162 | - **standard-redux-shape** 163 | https://github.com/ecomfe/standard-redux-shape 164 | A tiny utility library to help you manage an optimized redux store shape. 165 | 166 | - **erschema-redux-immutable** 167 | https://github.com/l2silver/erschema-redux-immutable 168 | Provides standardized actions, reducers, and state shape for storing Entities and Relationships using Immutable.js 169 | 170 | - **redux-entities-reducer** 171 | https://github.com/jgkinnear/redux-entities-reducer 172 | A pre-built entities reducer that handles merging and update actions. 173 | 174 | - **redux-struct** 175 | https://github.com/Qlean/redux-struct 176 | Set of tools providing a solid structure to keep and update domain entities in Redux store, including fetch status 177 | 178 | - **redux-entities** 179 | https://github.com/fakundo/redux-entities 180 | Actions, reducers, and selectors for managing a collection of entities. 181 | 182 | - **redux-json-api-handlers** 183 | https://github.com/StartupCraft/redux-json-api-handlers 184 | Utilities and reducers for managing JSON-API relation responses. 185 | 186 | - **redux-tide** 187 | https://github.com/edtoken/redux-tide 188 | Simple library to deal with Redux normalized state, including actions and selectors 189 | 190 | - **standard-redux-shape** 191 | https://github.com/ecomfe/standard-redux-shape 192 | standard-redux-shape is a tiny utility library to help you manage an optimized redux store shape, containing normalized entities and query responses with params. 193 | 194 | - **redux-schemad** 195 | https://github.com/heiskr/redux-schemad 196 | Create automatic reducers, actions, and default state from a state schema. This module intentionally only supports what's necessary to follow the spirit of Avoiding Accidental Complexity When Structuring Your App State by Tal Kol. 197 | 198 | - **redux-eloquent** 199 | https://github.com/SevenOutman/redux-eloquent 200 | Allows you to query and mutate your redux store in ORM style. 201 | 202 | - **crud-reducer** 203 | https://github.com/gojutin/crud-reducer 204 | A simple utility library to help you manage CRUD, API or any other async operations with redux. 205 | 206 | - **blue-chip** 207 | https://github.com/mfpiccolo/blue-chip 208 | Accepts payloads from GraphQL or JsonAPI servers, normalizes them into your store and provides an ORM like syntax for retrieving the data for use. 209 | 210 | #### Client/Server Collections 211 | 212 | - **redux-collection** 213 | https://github.com/eladlevy/redux-collection 214 | A robust redux collection data structure that easily syncs with a RESTful API. 215 | 216 | - **redux-crud-store** 217 | https://github.com/devvmh/redux-crud-store 218 | A reusable API for syncing models with a backend. Handles async using redux-saga, implements a default reducer for models, defines action creators for the reducer, and provides selectors for models. 219 | 220 | - **json-talk** 221 | https://github.com/manaflair/json-talk 222 | A Redux-friendly, JSON-API-compatible, ORM library 223 | 224 | - **redents** 225 | https://github.com/kneradovsky/redents 226 | Prebuilt middleware and reducers for managing REST entity APIs, plus more. 227 | 228 | - **redux-entity** 229 | https://github.com/gilesbradshaw/redux-entity 230 | A redux module allowing CRUD with real time updates 231 | 232 | - **redux-rest-adapter** 233 | https://github.com/maksim-chekrishov/redux-rest-adapter 234 | A REST adapter for redux based on redux-api-middleware 235 | 236 | - **redux-rest-tools** 237 | https://github.com/ocolot/redux-rest-tools 238 | Prebuilt logic for querying REST APIs 239 | 240 | - **redux-io** 241 | https://github.com/shoutem/redux-io 242 | Library for easy data managing between api and redux store. Library consists of middleware, reducers and action creators that enable simple handling of data in CRUD operations with API. 243 | 244 | - **redux-jam** 245 | https://github.com/ABASystems/redux-jam 246 | A Redux JSON API model layer 247 | 248 | - **Redux Clerk** 249 | https://github.com/GetAmbassador/redux-clerk 250 | Redux Clerk handles the async CRUD in your Redux App. Provides a set of action creators for both async and synchronous actions, an extendable reducers, handles derived datasets and provides selectors for computing derived data, and handles optimistic updates. 251 | 252 | - **redux-supermodel** 253 | https://github.com/MrLeebo/redux-supermodel 254 | Streamline the effort it takes for you to communicate between your Redux Store and a REST-like API. This is a package of action creator functions and reducers built with axios and redux-promise-middleware that handle the resource state management for you... all you need is a URL! 255 | 256 | - **react-native-redux-rest-resource** 257 | https://github.com/Osedea/react-native-redux-rest-resource 258 | A helper to handle REST Apis with Redux in react-native 259 | 260 | - **redux-normalized-crud** 261 | https://github.com/sbrigham/redux-normalized-crud 262 | An attempt to standardize restful calls and responses within a growing redux application 263 | 264 | - **resourceful-redux** 265 | https://github.com/jmeas/resourceful-redux 266 | A system for managing 'resources': data that is persisted to remote servers. 267 | 268 | - **redux-query** 269 | https://github.com/amplitude/redux-query 270 | Library for React+Redux apps to query remote data 271 | 272 | - **restful-redux** 273 | https://github.com/jhudson8/restful-redux 274 | REST oriented action creators, reducers and model utilities to DRY up boilerplate XHR functionality. 275 | 276 | - **redux-retrieval** 277 | https://github.com/zincli/redux-retrieval 278 | Reusable actions, reducers, selectors and sagas for retrieval/CRUD applications 279 | 280 | - **redux-asco** 281 | https://github.com/oligus/redux-asco 282 | Prebuilt reducers and action creators for handling of async collections 283 | 284 | - **redux-ntities** 285 | https://github.com/al-zah/redux-ntities 286 | A redux entities management library. It consists of 2 HOCs and a middleware. It allows you to persist your entities in IndexedDB/localStorage and provides common approach to save your entites in redux state. 287 | 288 | - **redux-resx** 289 | https://github.com/fixate/redux-resx 290 | Yet another Redux action creators, a reducer and middleware for resource-based APIs. 291 | 292 | - **redux-entities** 293 | https://github.com/zebulonj/redux-entities 294 | Abstracted support for managing persistent entities in Redux. 295 | 296 | - **redux-api-call** 297 | https://github.com/tungv/redux-api-call 298 | Redux utilities for API calls using fetch with automatic race-conditions elimination. One command to create reducers, action creators and selectors for JSON API calls. 299 | 300 | - **redux-flute** 301 | https://github.com/kyleramirez/redux-flute 302 | Flute is a front-end-only Object Data-store Mapping (ODM) implementation that lets you interact with RESTful APIs. By defining models on the front end and integrating closely with the popular state container, Redux, Flute offers a Ruby-on-Rails-esque, ActiveRecord-ey syntax. Think ActiveRecord for JavaScript. Flute is agnostic to back-end architecture. It's built for APIs which respond to GET/POST/POST/DELETE requests for resources identified by predefined keys. 303 | 304 | - **redux-relax** 305 | https://github.com/saltas888/redux-relax 306 | A library that will help you to integrate with Redux and manage your redux state efficiently, without need of writing Actions, types, reducers, schemas(normalizr), functions for fetching data from API . 307 | 308 | - **redux-bees** 309 | https://github.com/cantierecreativo/redux-bees 310 | A nice, short and declarative way to interact with JSON APIs 311 | 312 | - **redux-store-filler** 313 | https://github.com/geoolekom/redux-store-filler 314 | redux-store-filler will retrieve data via API, normalize it, put it in Redux store and follow foreign keys if necessary. If data is already present in store, it will call API if only it's outdated. 315 | 316 | - **redux-crud-observable** 317 | https://github.com/FoodMeUp/redux-crud-observable 318 | Actions, reducers & epics for managing crud redux state 319 | 320 | - **redux-restful-resource** 321 | https://github.com/buhichan/redux-restful-resource 322 | A restful resource wrapper for typescript that auto syncs your data with redux. 323 | 324 | - **redux-endpoints** 325 | https://github.com/dylanonelson/redux-endpoints 326 | Define Redux modules for fetching data from API endpoints. 327 | 328 | - **Hyperduce** 329 | https://github.com/jondot/hyperduce 330 | A complete and extensible Redux workflow for handling RESTful resources. You get actions, state, and reducer out of the box for handling backend data. 331 | 332 | - **active-redux** 333 | https://github.com/coverhound/active-redux 334 | The goal of this project is to stop bikeshedding API interactions on the frontend. We want an Active Record for Redux that works nicely with other reducers and doesn't require its own store. 335 | 336 | - **multi-routing-api** 337 | https://github.com/aliaksandr-master/multi-routing-api 338 | Redux api middleware for separate your api routes, api actions, and interceptors. Provides state normalization, db reducer, and uses Normalizr. 339 | 340 | - **redux-chunk** 341 | https://github.com/onlicar/redux-chunk 342 | A library to declaratively interact with any API. Redux Chunk allows you to define your API endpoints across chunks in webpack chunked application. For large APIs, it makes sense to dynamically add paths to your SDK-style endpoints list and it improves the separation of concerns, with each action file defining it's own endpoints and request structure. Based off of redux-bees. 343 | 344 | - **modelresource** 345 | https://github.com/mbenadda/modelresource 346 | Easy-to-use model interaction methods for the client side. Uses a redux store and exposes rxjs-based methods to consumers. 347 | 348 | - **Redest** 349 | https://github.com/momentechnologies/redest 350 | Rest API integration made easy - tries to solve the boilerplate that comes with communicating to a REST API. 351 | 352 | - **redux-data-entity** 353 | https://github.com/iamawebgeek/redux-data-entity 354 | Helps manage Redux data easier. No action/reducer/constant declaration; caches request and prevents repetitive requests; provides optimistic creates, updates, and deletes; and has zero-config integration with no store modification. 355 | 356 | - **redux-thunk-crud** 357 | https://github.com/gogoair/redux-thunk-crud 358 | A library that seeks to eliminate the boilerplate of writing highly repetitive reducers and action creators for simple RESTful API CRUD actions, using redux-thunk to handle asynchronous API calls. 359 | 360 | - **redux-crud-manager** 361 | https://github.com/GuillaumeJasmin/redux-crud-manager 362 | Keep your redux store synced with your server 363 | 364 | - **hyperdux** 365 | https://github.com/jondot/hyperdux 366 | A complete and extensible Redux workflow for handling RESTful resources. You get actions, state, and reducer out of the box for handling backend data. 367 | 368 | - **Reactive Record** 369 | https://github.com/rentalutions/reactiverecord 370 | A front-end-only Object Data-store Mapping (ODM) implementation that lets you interact with RESTful APIs. By defining models on the front end and integrating closely with the popular state container, Redux, Reactive Record offers a Ruby-on-Rails-esque, Active Record-ey syntax 371 | 372 | - **redux-capacitor** 373 | https://github.com/contactually/redux-capacitor 374 | An easy-to-use and powerful caching REST API client for React. 375 | 376 | - **r3-library** 377 | https://github.com/cassaram09/r3-library 378 | r3-library (short for React-Redux-Resource) is a small library to handle resources in a React-Redux application more efficiently. This library allows users to create a Resource handles remote and promise based actions. It dynamically generates the reducer for use by the store. This project was inspired by AngularJS $Resource functionality for making HTTP requests. 379 | -------------------------------------------------------------------------------- /forms.md: -------------------------------------------------------------------------------- 1 | ### Forms 2 | 3 | 4 | - **redux-form** 5 | https://github.com/erikras/redux-form 6 | A full-featured library to enable a React HTML form to store its state in Redux. 7 | 8 | - **React Redux Form** 9 | https://github.com/davidkpiano/react-redux-form 10 | React Redux Form is a collection of reducer creators and action creators that make implementing even the most complex and custom forms with React and Redux simple and performant. 11 | 12 | - **redux-form-utils** 13 | https://github.com/jasonslyvia/redux-form-utils 14 | Make handling forms in Redux less painful by providing helper functions to handle form bindings. 15 | 16 | - **redux-fields** 17 | https://github.com/cbioley/redux-fields 18 | A lean Higher Order Component which keeps form state in a Redux store, extracted from Este.js. 19 | 20 | - **redux-field** 21 | https://github.com/cape-io/redux-field 22 | For when you want to control individual form fields with redux. Think something like https://vitalets.github.io/x-editable/ for Redux. 23 | 24 | - **Redux Form Validation** 25 | https://github.com/posabsolute/redux-form-validator 26 | An es6 redux form validator middleware that helps you manage inputs. This middleware is not about keeping your global form state; it's about keeping your form validation state. 27 | 28 | - **redux-formo** 29 | https://github.com/jameslnewell/redux-formo 30 | An alternate forms framework for Redux+React. Validate on blur, not change. Validate individual fields, not the whole form 31 | 32 | - **redux-uniform** 33 | https://github.com/babotech/redux-uniform 34 | High order component for working with forms with redux 35 | 36 | - **revalidate** 37 | https://github.com/jfairbank/revalidate 38 | Elegant and composable validations. Works out of the box with redux-form but useful for general validations too. 39 | 40 | - **react-redux-autobound-inputs** 41 | https://github.com/calvinfroedge/react-redux-autobound-inputs 42 | Two way data binding and edit / view states for selected input controls. This project provides automatic data binding to redux store for some common inputs. The inputs include choices from react-bootstrap and react-widgets. 43 | 44 | - **redux-form-validation-helpers** 45 | https://github.com/leiringer/redux-form-validation-helpers 46 | A number of validation functions. 47 | 48 | - **react-formagic** 49 | https://github.com/kjessec/react-formagic 50 | A react form binding that adapts to your code, not the other way around. At the end of the day, react-formagic is just a HoC wrapper that translates props given to it into a set of enhanced props that'll make it easy to work with forms. 51 | 52 | - **React Redux Local Form** 53 | https://github.com/jschr/react-redux-form-provider 54 | React components for building forms with a local Redux store for managing state. 55 | 56 | - **simple-redux-form** 57 | https://github.com/mihirsoni/simple-redux-form 58 | A tiny alternative for Redux-Form 59 | 60 | - **rform** 61 | https://github.com/KonstantinKo/rform 62 | React/Redux Forms - optimized for a Ruby on Rails backend. Inspired by Ruby on Rails forms (FormHelper/SimpleForm) and form objects (reform) 63 | 64 | - **React Formy** 65 | https://github.com/wellguimaraes/react-formy 66 | A light, simple and fast Higher Order Component to keep form state, inspired by redux-form. 67 | 68 | - **onion-form** 69 | https://github.com/blueberryapps/onion-form 70 | React Redux form builder with great UX validations 71 | 72 | - **react-redux-form-provider** 73 | https://github.com/jschr/react-redux-form-provider 74 | A set of React helpers to help with building forms. State is managed with a Redux store that is local to your component. 75 | 76 | - **focus-graph** 77 | https://github.com/get-focus/focus-graph 78 | Tools based on Redux to easily integrate forms, validate and manipulate data 79 | 80 | - **redux-pure-form** 81 | https://github.com/max-mykhailenko/redux-pure-form 82 | Redux actions for good performance and integration with your reducers 83 | 84 | - **redux-forms** 85 | https://github.com/oreqizer/redux-forms 86 | A simple form manager for React and Redux (WIP) 87 | 88 | - **reFormz** 89 | https://github.com/orangecoding/reFormz 90 | reFormz provides an easy way to connect your forms to your store. It's a small easy to use library that provides all components like textfields or selectboxes ready to be used. 91 | 92 | - **redux-inputs** 93 | https://github.com/zillow/redux-inputs 94 | redux-inputs works with redux to validate and store values from inputs and forms. Declarative validating, parsing, formatting, and more. 95 | 96 | - **redux-form-reducer** 97 | https://github.com/gigobyte/redux-form-reducer 98 | Dead simple form reducer inspired by Angular. This library provides an easy way to setup a reducer that has built-in handling for validation on field change and other nifty things. 99 | 100 | - **validation-reselect** 101 | https://github.com/rdamborsky/validation-reselect 102 | Complex forms validation using reselect 103 | 104 | - **simpler-redux-form** 105 | https://github.com/catamphetamine/simpler-redux-form 106 | Just like redux-form but much simpler - aimed to be a minimal sane set of features compared to redux-form. 107 | 108 | - **formred** 109 | https://github.com/zewish/formred 110 | The ergonomic React/Redux form library 111 | 112 | - **react-redux-simple-validate** 113 | https://github.com/ikanedo/react-redux-simple-validate 114 | React Redux Form validator inspired by jquery validate 115 | 116 | - **redux-forms-core** 117 | https://github.com/zebulonj/redux-forms-core 118 | Prebuilt middleware, actions, and reducer for managing form data with Immutable.js state 119 | 120 | - **light-form** 121 | https://github.com/j0nas/light-form 122 | A small library for easily making simple forms with a standard React/Redux setup. Its primary goal is to reduce the amount of boilerplate written for standard form handling without adding any magic or library lock-in. 123 | 124 | - **react-controlled-form** 125 | https://github.com/rofrischmann/react-controlled-form 126 | react-controlled-form aims to simplify form management with React and Redux. It ships functional APIs to create your very own form fields and is built with flexibility and customization in mind. 127 | 128 | - **redux-forms** 129 | https://github.com/oreqizer/redux-forms 130 | A simple form manager for Redux, with bindings for React (and possible to create bindings for other UI libraries). 131 | 132 | - **formux** 133 | https://github.com/stewartml/formux 134 | Makes constructing forms in a React/Redux application easier. 135 | 136 | - **redux-formalize** 137 | https://github.com/andy-shea/redux-formalize 138 | Seamless management of stateless forms in your React/Redux app. 139 | 140 | - **redux-form-helper** 141 | https://github.com/hindmost/redux-form-helper 142 | ES6 class that helps build controlled form components with React/Redux and simplifies form validation and handling. It has no dependencies and supposed to be used as a member of React component. 143 | 144 | - **redux-reselect-validation** 145 | https://github.com/ffossum/redux-reselect-validation 146 | Actions, selectors, and reducers for helping manage form input validation. 147 | 148 | - **redux-duck-form** 149 | https://github.com/ivanwolf15/redux-duck-form 150 | A redux duck to manage your form state in the store. 151 | 152 | 153 | #### Redux-Form Addons 154 | 155 | - **redux-form-submit-saga** 156 | https://github.com/colinbate/redux-form-submit-saga 157 | Handles redux-form submissions using redux-saga 158 | 159 | - **redux-autoform** 160 | https://github.com/redux-autoform/redux-autoform 161 | Redux-Autoform is an UI agnostic library for dynamically generating redux-form out of metadata. 162 | 163 | - **redux-form-saga** 164 | https://github.com/mhssmnn/redux-form-saga 165 | Connecting Redux Form and Redux Saga through a saga. 166 | 167 | - **redux-form-actions** 168 | https://github.com/salsita/redux-form-actions 169 | Redux Form provides way to make asynchronous submit validation, but API can use only promises. For Redux applications, using actions is more natural. Especially when you are using asynchronous flow abstraction like sagas or observables. Redux Form Actions is a wrapper around Redux Form with action driven submit validations. 170 | 171 | - **redux-form-inspector** 172 | https://github.com/marmelab/redux-form-inspector 173 | An HOC for computing dynamic props from values inside an existing redux-form component. 174 | 175 | - **redux-schema-form** 176 | https://github.com/buhichan/redux-schema-form 177 | A json configured component on top of redux-form, so yuo don't have to write a separate component for every form - just change the "schema" prop. 178 | 179 | - **redux-form-validate-rules** 180 | https://github.com/muitsfriday/redux-form-validate-rules 181 | A rule set of redux-form validation with custom message. Works with redux-form validation v7. 182 | 183 | - **redux-form-gen** 184 | https://github.com/isobar-us/redux-form-gen 185 | A pluggable form generator for redux-form -------------------------------------------------------------------------------- /immutable-data.md: -------------------------------------------------------------------------------- 1 | ### Immutable Data 2 | 3 | 4 | #### Immutable Data Structures (Specialized) 5 | 6 | - **Immutable.js** 7 | https://immutable-js.github.io/immutable-js/ 8 | Fully-featured data structures library that uses advanced internal data storage to efficiently manage modified references. Very widely used, but also rather complex. 9 | 10 | - **Mori** 11 | https://github.com/swannodette/mori 12 | ClojureScript's persistent data structures and supporting API from the comfort of vanilla JavaScript 13 | 14 | - **immutable-record** 15 | https://github.com/b-gran/immutable-record 16 | Typed immutable Records inspired by ImmutableJS, with automatic validation 17 | 18 | - **Immutable Data Structures** 19 | https://github.com/nathanfaucett/js-immutable-playground 20 | Immutable persistent data structures based on Clojure. Separate libraries for Vectors, Lists, HashMaps, Sets, and Records. 21 | 22 | #### Immutable Data Structures (Object Freezing) 23 | 24 | - **seamless-immutable** 25 | https://github.com/rtfeldman/seamless-immutable 26 | Immutable data structures for JavaScript which are backwards-compatible with normal JS Arrays and Objects. Uses freezing. 27 | 28 | - **redux-tcomb** 29 | https://github.com/gcanti/redux-tcomb 30 | Immutable and type-checked state and actions for Redux (built on tcomb library) 31 | 32 | - **immu** 33 | https://github.com/scottcorgan/immu 34 | A TINY, fail-fast, lazy, "naked", simple immutable Javascript objects library. 35 | 36 | - **icedam** 37 | https://github.com/winkler1/icedam 38 | Ice Dam: a very lightweight library to freeze data. Data is frozen at the edge, where your Flux container sends it to views. 39 | 40 | - **updeep** 41 | https://github.com/substantial/updeep 42 | Easily update nested frozen objects and arrays in a declarative and immutable manner. 43 | 44 | - **icepick** 45 | https://github.com/aearly/icepick 46 | Utilities for treating frozen JavaScript objects as persistent immutable collections 47 | 48 | - **crio** 49 | https://github.com/planttheidea/crio 50 | Immutable JS objects with a natural API. Creates wrapper objects with replacements for mutating APIs that return new objects instead. 51 | 52 | - **seamless-immutable-cursor** 53 | https://github.com/MartinSnyder/seamless-immutable-cursor 54 | Compact Cursor Library built on top of the excellent seamless-immutable. Cursors can be used to manage transitions and manipulations of immutable structures in an application. 55 | 56 | 57 | #### Immutable Update Utilities 58 | 59 | 60 | - **immer** 61 | https://github.com/mweststrate/immer 62 | A tiny package by Michel Weststrate, author of MobX, that allows you work with immutable state in a more convenient way. It is based on a copy-on-write mechanism, and uses ES6 proxies to let you write mutative code that is applied immutably. 63 | 64 | - **immutable-ops** 65 | https://github.com/tommikaikkonen/immutable-ops 66 | A collection of functions to perform immutable operations on plain JavaScript objects and arrays. Like updeep but with batched mutations and no freezing. Like icepick, but with batched mutations and a curried API that puts the target object as the last argument. No freezing. 67 | 68 | - **Redecorate** 69 | https://github.com/Wildhoney/Redecorate 70 | Simple module for reducing immutable nested properties in Redux applications. 71 | 72 | - **object-path-immutable** 73 | https://github.com/mariocasciaro/object-path-immutable 74 | Modify deep object properties without modifying the original object (immutability). Works great with React and Redux. 75 | 76 | - **immutable-path** 77 | https://github.com/baptistemanson/immutable-path 78 | Immutable path is a simple micro library providing js object selectors and modifiers. Stick to immutability: modification always returns a new instance of the object. Free optin and optout: no need to wrap all your plain objects in classes, no init. 79 | 80 | - **update-in** 81 | https://github.com/dustingetz/update-in/ 82 | Persistent functional object updates on vanilla js data structures (wraps react-addons-update) 83 | 84 | - **dot-prop-immutable** 85 | https://github.com/debitoor/dot-prop-immutable 86 | The motivation for this module is to have a simple utility for changing state in a React-Redux application without mutate existing state of plain JavaScript objects. 87 | 88 | - **Sprout** 89 | https://github.com/herrstucki/sprout/ 90 | Sprout provides a set of functions to help you work with nested data without all the headaches. Sprout never mutates the original data but returns new versions. This way, plain JavaScript objects (and arrays) can be effectively treated as if they were immutable. 91 | 92 | - **Scour** 93 | https://github.com/rstacruz/scour 94 | Traverse objects and arrays immutably. Scour is a general-purpose library for dealing with JSON trees. Use it to: manage your Redux datastore; provide a model layer to access data in your single-page app; navigate a large JSON tree easily; rejoice in having a lightweight alternative to Immutable.js. 95 | 96 | - **Timm** 97 | https://github.com/guigrpa/timm 98 | Immutability helpers with fast reads and acceptable writes. Timm's approach: use plain objects and arrays and provide simple mutation functions that will probably not handle all edge cases. 99 | 100 | - **emerge** 101 | https://github.com/Mitranim/emerge 102 | Utilities for creating and merging immutable data trees. Friendly to functional programming. Only plain JS objects, no custom classes, no OOP, bring your own data. 103 | 104 | - **reduxr-reducer-helpers** 105 | https://github.com/chrisdavies/reduxr-reducer-helpers 106 | A utility to handle common array manipulation reducer functions. 107 | 108 | - **immutability-helper** 109 | https://github.com/kolodny/immutability-helper 110 | "React Immutability Helpers" most likely are [going to be deprecated](https://github.com/kolodny/immutability-helper/issues/1). This library is a drop-in replacement for `react-addons-update` that in addition allows you to extend its functionality. 111 | 112 | - **no-mutate** 113 | https://github.com/otissv/no-mutate 114 | Immutable data structures and methods for plain JavaScript arrays 115 | 116 | - **immutable-assign** 117 | https://github.com/engineforce/ImmutableAssign 118 | Lightweight immutable helper that allows you to continue working with POJO (Plain Old JavaScript Object), and supports full TypeScript type checking 119 | 120 | - **sp2** 121 | https://github.com/phenyl-js/sp2 122 | Immutable updater that allows you to access nested values with Typescript autocompletion. 123 | 124 | - **immutable-helpers** 125 | https://github.com/zammer/immutable-helpers 126 | Set of helper functions to work with Redux reducers immutably 127 | 128 | - **plow** 129 | https://github.com/grebaldi/plow-js 130 | Functional operations on large immutable objects 131 | 132 | - **statesis** 133 | https://github.com/varak69/statesis 134 | A smart state constructor for redux states. Statesis does a deep compare/copy of 2 states and compiles a new state which keeps references to unchanged objects from the old state and mixes them with new objects which have altered in the new state. 135 | 136 | - **monolite** 137 | https://github.com/kube/monolite 138 | A small immutable update library that preserves TypeScript typing and static inference when operating on plain JS objects 139 | 140 | - **immutable-light** 141 | https://github.com/ricsv/immutable-light 142 | Light-weight immutability helpers that works great together with Redux, inspired by Immutable.js 143 | 144 | - **redux-create-state** 145 | https://github.com/niklasramo/redux-create-state 146 | A utility function for Redux to ease the process of creating a new state object, immutably. 147 | 148 | - **qim** 149 | https://github.com/jdeal/qim 150 | Immutable/functional select/update queries for plain JS. 151 | 152 | - **mutateless** 153 | https://github.com/dennisgulich/mutateless 154 | Keep your sanity while working with immutable data structures. A small utility module which provides a bunch of functions for working with immutable data structures. Instead of polluting or changing the way you work with your objects, we designed the functions to work on regular objects, lists and nested data structures of any kind. 155 | 156 | - **immuter** 157 | https://github.com/zaaack/immuter 158 | An immutable react/redux state update helper, easily handle nested state with the least code. 159 | 160 | - **precise-copy** 161 | https://github.com/VsevolodTrofimov/precise-copy 162 | A small keypath-based immutable update lib that's more performant than deep copying 163 | 164 | - **partial.lenses** 165 | https://github.com/calmm-js/partial.lenses/ 166 | Partial lenses is a comprehensive, high-performance optics library for JavaScript. Optics are a highly composable means of manipulating nested data structures in an immutable fashion. 167 | 168 | - **mewt** 169 | https://github.com/sdgluck/mewt 170 | Immutability in under one kilobyte. Makes all native array methods immutable operations. Two simple methods $set and $unset for objects and arrays. 171 | 172 | - **immutable-update** 173 | https://github.com/TodayTix/immutable-update 174 | A utility function for efficiently applying updates to objects that are being treated as immutable data. 175 | 176 | - **immutable-functions** 177 | https://github.com/jkbailey/immutable-functions 178 | A simple, easy, straight forward approach to update immutable data. 179 | 180 | - **transmutable** 181 | https://github.com/hex13/enter-ghost/tree/master/packages/transmutable 182 | Immutable objects that pretend to be mutable, using ES6 proxies. 183 | 184 | - **redux-toolbelt-immutable-helpers** 185 | https://github.com/welldone-software/redux-toolbelt/tree/master/packages/redux-toolbelt-immutable-helpers 186 | A set of helper functions to reduce verbosity inside Redux reducers. Includes a variety of utilities for common use cases like appending to an array, reordering items in an array, removing items by ID, updating object properties, and more. 187 | 188 | - **stateware** 189 | https://github.com/wellguimaraes/stateware 190 | A fast, dependency-free state container with easy copy and automagically memoized getters, designed for immutability. Can be used as the state object in Redux reducers. 191 | 192 | - **with-mutations** 193 | https://github.com/jharris4/with-mutations 194 | Provides a getWithMutations(oldValue, newValue) function that returns the oldValue when the values are equal, or returns the newValue when the values are different. It operates recursively on objects or arrays, preserving nested value equality whenever possible. 195 | 196 | - **redux-create-state** 197 | https://github.com/niklasramo/redux-create-state 198 | A utility function for Redux to ease the process of creating a new state object, immutably. Works by first creating a shallow clone of the current state (object or array) and then cloning all the nested arrays and objects between the root object/array and the inserted values. 199 | 200 | - **collection-deep-merge** 201 | https://github.com/a-x-/collection-deep-merge 202 | Deep merge array of objects by passed key. Objects with same key vals will merge together 203 | 204 | - **blazing-edge/update** 205 | https://github.com/blazing-edge-labs/update 206 | https://blog.blazingedge.io/immutable-update/ 207 | An immutable update utility with handling for patching items, updating all items in an array, or removing some of them. 208 | 209 | - **typescript-immutable-helper** 210 | https://github.com/maimArt/typescript-immutable-helper 211 | Helpers for handling immutable objects with typescript 212 | 213 | - **redux-immutable-ops** 214 | https://github.com/nitishkr88/redux-immutable-ops 215 | A collection of helper functions to perform immutable operations on plain JavaScript objects and arrays. Works on the immutable update patterns as defined by Redux. 216 | 217 | - **Redecorate** 218 | https://github.com/Wildhoney/Redecorate 219 | Simple module for reducing immutable nested properties in Redux applications. 220 | 221 | - **unchanged** 222 | https://github.com/planttheidea/unchanged 223 | A tiny, fast, unopinionated handler for updating JS objects and arrays immutably 224 | 225 | - **objutil** 226 | https://github.com/thenewvu/objutil 227 | A minimal javascript library provides utility functions for working on objects. 228 | 229 | - **ipath** 230 | https://github.com/ln613/ipath 231 | Ensure immutability by updating javascript objects using a path similar to CSS/jQuery selector, great for react/redux applications where immutability is required, especially when working with deeply nested objects. 232 | 233 | - **hydux-mutator** 234 | https://github.com/hydux/hydux-mutator 235 | Yet another statically-typed immutable data update helper library inspired by monolite with better performance and browser compatibility, and support class state. 236 | 237 | - **remute** 238 | https://github.com/ababik/RemuteJS 239 | A tool to produce new immutable object from the previous one using ES6 arrow functions 240 | 241 | - **object-immutable-set** 242 | https://github.com/GhystonSoftware/object-immutable-set 243 | Update deeply nested objects in an immutable and type-safe way 244 | 245 | - **imset** 246 | https://github.com/brigand/imset 247 | Immutable updates that look mutable with template strings 248 | 249 | - **immutad●t** 250 | https://github.com/Zenika/immutadot 251 | immutad●t offers a short and meaningful syntax to apply operations on immutable structures. It allows batch modifications using an advandced path notation and grouped modifications using a functional approach, and is extensible. 252 | 253 | #### Immutable/Redux Interop 254 | 255 | - **redux-immutable** 256 | https://github.com/gajus/redux-immutable 257 | redux-immutable is used to create an equivalent function of Redux combineReducers that works with Immutable.js state. 258 | 259 | - **immutable-redux** 260 | https://github.com/unindented/immutable-redux 261 | Provides utilities for dealing with Immutable data structures in Redux. 262 | 263 | - **redux-immutablejs** 264 | https://github.com/indexiatech/redux-immutablejs 265 | This is a small library that aims to provide integration tools between Redux & ImmutableJs that fully conforms Redux actions & reducers standards. 266 | 267 | - **redux-immutable-utils** 268 | https://github.com/aparticka/redux-immutable-utils 269 | Utilities for using Immutable with Redux 270 | 271 | - **immutable-reducers** 272 | https://github.com/phuu/immutable-reducers 273 | Create reducers for immutable data structures. 274 | 275 | - **redux-seamless-reducers** 276 | https://github.com/mrydengren/redux-seamless-reducers 277 | Integrate seamless-immutable with Redux 278 | 279 | - **redux-immutable-combine-reducers** 280 | https://github.com/dustinspecker/redux-immutable-combine-reducers 281 | A Redux combineReducers that returns an Immutable Map 282 | 283 | - **Redux Immutable to JS** 284 | https://github.com/nakamura-to/redux-immutable-to-js 285 | Redux Immutable to JS allows you to convert immutable objects to JS objects automatically when Redux state is required outside reducers. 286 | 287 | - **redux-tcomb-actions** 288 | https://gitlab.com/zdragnar/redux-tcomb-actions 289 | This module presents a simple way to generate action creators that provide a bit of type safety via tcomb. 290 | 291 | - **node-dux** 292 | https://github.com/eknkc/node-dux 293 | Seamless-Immutable Redux helpers 294 | 295 | - **redux-mori** 296 | https://github.com/redbadger/redux-mori 297 | redux-mori is a drop-in replacement for Redux's combineReducers that works with mori.js immutable data structures. 298 | 299 | - **redux-seamless-immutable** 300 | https://github.com/eadmundo/redux-seamless-immutable 301 | Helpers for using seamless-immutable in Redux. Provides a compatible combineReducers and routerReducer (for use with react-router-redux). 302 | 303 | - **redux-utils-immutable** 304 | https://github.com/jcoreio/redux-utils-immutable 305 | Utilities for working with redux and immutable.js 306 | 307 | - **combine-reducers-immutable** 308 | https://github.com/montanonic/combine-reducers-immutable 309 | Redux's combineReducers adjusted to support ImmutableJS state. 310 | 311 | - **redux-loop-immutable** 312 | https://github.com/redux-loop/redux-loop-immutable 313 | ImmutableJS Helpers for Redux Loop 314 | 315 | 316 | #### Alternate Data Management Concepts 317 | 318 | - **reduxdb** 319 | https://github.com/wizawu/reduxdb 320 | Redux with MongoDB-like API. Dispatches internal Redux actions in response to API calls like `db.someCollection.insert({id : 1, name "abc"})`. 321 | 322 | - **Vry** 323 | https://github.com/JaapRood/vry 324 | Data modeling with Immutable.js designed for use with Redux-like architectures. Defining models using Immutable.js, making it easier to define defaults, parsing, serialisation, merging, identifiying entities, etc. Models are stateless (anaemic), meaning the instances (Immutable.Maps) are passed to the Model's methods as the first argument and a new / updated version is returned. This makes them a great fit to implement Redux reducers. 325 | 326 | - **Datascript** 327 | https://github.com/tonsky/datascript 328 | Immutable database and Datalog query engine for Clojure, ClojureScript and JS 329 | 330 | - **jseg** 331 | https://github.com/brandonbloom/jseg 332 | A super simple, in-memory, JS graph database. 333 | 334 | - **redux-graph** 335 | https://github.com/cape-io/redux-graph 336 | Really basic graph database with entity and triple storage with some helper functions to join it all together. The module loosely follows the Hexastore approach. Six indices are created for every triple, in order to access them as fast as it is possible. 337 | -------------------------------------------------------------------------------- /library-integration.md: -------------------------------------------------------------------------------- 1 | ### Library Integration and Bindings 2 | 3 | #### React 4 | 5 | - **React-Redux** 6 | https://github.com/reactjs/react-redux 7 | The official React bindings for Redux, maintained by the Redux team 8 | 9 | #### Angular 10 | 11 | - **Angular 2: @angular-redux/store** 12 | https://github.com/angular-redux/store 13 | Angular 2+ bindings for Redux 14 | 15 | - **Angular 2: @ngrx/store** 16 | https://github.com/ngrx/store 17 | RxJS powered state management for Angular applications, inspired by Redux 18 | 19 | - **Angular 1: ng-redux** 20 | https://github.com/angular-redux/ng-redux 21 | ngRedux lets you easily connect your angular components with Redux. 22 | 23 | - **Angular 1: Angular Redux** 24 | https://github.com/bcarroll22/ng-component-redux 25 | Angular 1.5 component bindings for Redux. Inspired by ng-redux and react-redux. A great way to manage application state in component-based applications. 26 | 27 | - **ng-app-state** 28 | https://github.com/simontonsoftware/ng-app-state 29 | ng-app-state is built on top of ngrx/store, bringing you the same help writing performant, consistent applications for Angular in a format more familiar for those not accustomed to functional programming. Compatible with the Redux DevTools and ngrx/effects. 30 | 31 | - **ngx-redux-core** 32 | https://github.com/HarmoWatch/ngx-redux-core 33 | The modern Redux integration for Angular 2+ 34 | 35 | #### Ember 36 | 37 | - **ember-redux** 38 | https://github.com/ember-redux/ember-redux 39 | ember-cli addon that provides simple redux bindings for ember.js 40 | 41 | - **ember-redux-data** 42 | https://github.com/foxnewsnetwork/ember-redux-data 43 | Common patterns and blueprints for using redux's data / IO layer solutions in ember 44 | 45 | - **ember-redux-orm** 46 | https://github.com/foxnewsnetwork/ember-redux-orm 47 | ember-cli shim and blueprints for using redux-orm in your ember app 48 | 49 | - **glimmer-redux** 50 | https://github.com/glimmer-redux/glimmer-redux 51 | Predictable state management for glimmer apps 52 | 53 | #### Backbone 54 | 55 | - **backbone-redux** 56 | https://github.com/redbooth/backbone-redux 57 | The easy way to keep your backbone collections and redux store in sync. Creates reducers and listeners for your backbone collections and fires action creators on every collection change. 58 | 59 | - **Redux-Marionette** 60 | https://github.com/stutrek/redux-marionette 61 | This is a simple connection between Marionette and redux. It's designed to ease a transition to redux. Redux-Marionette binds to the lifecycle of your views, so any model or collection attached to a view will transparently be attached to your reducer and dispatcher then disconnected when the view is removed. 62 | 63 | - **backbone-connect** 64 | https://github.com/m90/backbone-connect 65 | React-Redux inspired Backbone.js/React bindings 66 | 67 | - **backbone-redux-store** 68 | https://github.com/adamterlson/backbone-redux-store 69 | Redux store API for your Backbone Models and Collections. Works with or without Redux. 70 | 71 | - **marionette-redux** 72 | https://github.com/AndrewHenderson/marionette-redux 73 | Marionette bindings for Redux. 74 | 75 | - **backbone-redux-migrator** 76 | https://github.com/naugtur/backbone-redux-migrator 77 | A tool for migrating from Backbone stack to react+redux without disturbing the project or putting it on hold for a rewrite. 78 | 79 | - **backbonex** 80 | https://github.com/stvkoch/backbonex 81 | Allows use of Models and Collections by listening to actions and synchronizing changes in a redux state tree 82 | 83 | 84 | #### Vue 85 | 86 | - **revue** 87 | https://github.com/revue/revue 88 | Redux bindings for Vue 89 | 90 | - **vuedeux** 91 | https://github.com/Vuedeux/vuedeux 92 | Vuedeux is a lightweight open-source utility layer for binding Vuex to Redux in a way that allows developers to re-use their pre-existing Redux stores. 93 | 94 | - **Vuedux** 95 | https://github.com/jaredramirez/vuedux 96 | Familiar Redux bindings for Vue.js, inspired by React-Redux. 97 | 98 | - **redux-vue** 99 | https://github.com/nadimtuhin/redux-vue 100 | Vue redux binding 101 | 102 | - **revux** 103 | https://github.com/edvincandon/revux 104 | Inspired by Revue, use Redux with Vue.js seamlessly 105 | 106 | - **redux-store-mixin** 107 | https://github.com/kolesoffac/redux-store-mixin 108 | Mixin to integrate action creators in methods of vue component 109 | 110 | - **vuejs-redux** 111 | https://github.com/titouancreach/vuejs-redux 112 | High order component facilities for Vue and Redux 113 | 114 | - **vue-own-redux** 115 | https://github.com/RequireSun/vue-own-redux 116 | A connector to make a vue component has its own redux store. 117 | 118 | #### Vanilla JS 119 | 120 | - **polymer-redux** 121 | https://github.com/tur-nr/polymer-redux 122 | Polymer bindings for Redux. 123 | 124 | - **js-redux** 125 | https://github.com/davej/js-redux 126 | Redux bindings for vanilla javascript functions and classes 127 | 128 | - **newton-redux** 129 | https://github.com/cleegle/newton-redux 130 | Inspired by react-redux, Newton Redux allows you to connect plain JavaScript classes to a redux store. It will feel similar to writing a React component but without rendering a UI. 131 | 132 | - **redux-clazz** 133 | https://github.com/TriPSs/redux-clazz 134 | Redux Clazz lets you connect any normal class to redux 135 | 136 | - **bindreduxstoretodom** 137 | https://github.com/soleiluwedu/bindreduxstoretodom 138 | A tiny utility to stringify a Redux store's contents and write it to a div 139 | 140 | - **redux-helpers** 141 | https://github.com/PolymerLabs/redux-helpers 142 | Small utilities from the Polymer project to help integrate Redux into a web components app 143 | 144 | 145 | #### Other 146 | 147 | - **deku-redux** 148 | https://github.com/troch/deku-redux 149 | Bindings for redux in deku < v2 150 | 151 | - **riot-redux** 152 | https://github.com/danny-andrews/riot-redux 153 | Riot bindings for redux. 154 | 155 | - **cycle-redux** 156 | https://github.com/ande765a/cycle-redux 157 | Unofficial bindings for Cycle.js 158 | 159 | - **vidom-redux** 160 | https://github.com/dfilatov/vidom-redux 161 | Redux bindings for Vidom 162 | 163 | - **gwt-redux** 164 | https://github.com/GWTReact/gwt-redux 165 | GWT Java bindings for Redux and Redux related projects 166 | 167 | - **midux** 168 | https://github.com/bmartel/midux 169 | A simple adapter for mithril and redux 170 | 171 | - **preact-redux** 172 | https://github.com/pshev/preact-redux 173 | Uses a version of connect prior to major 5.0 updates, so no connectAdvanced API. Uses a very simplified version of Provider that simply puts the given store on the context. 174 | 175 | - **redux-view-binder** 176 | https://github.com/mycomosi/redux-view-binder 177 | Bind your web-component views easily with Redux (no React, no Polymer) 178 | 179 | - **drishti** 180 | https://github.com/aarongodin/drishti 181 | Drishti is a focused, minimal view for Redux meant for teeny tiny front-end applications. 182 | 183 | - **isymtope** 184 | https://github.com/tmzt/isymtope 185 | Experimental hybrid redux+IncrementalDOM client and server-side rendering in Rust. 186 | 187 | - **choo-redux** 188 | https://github.com/soyuka/choo-redux 189 | Redux bridge for choojs. 190 | 191 | - **aurelia-redux-plugin** 192 | https://github.com/steelsojka/aurelia-redux-plugin 193 | A Redux plugin for the Aurelia framework 194 | 195 | - **lit-redux** 196 | https://github.com/jmas/lit-redux 197 | An implementation of the React-Redux API for the lit-html library 198 | 199 | - **d3-redux** 200 | https://github.com/couchand/d3-redux 201 | Idiomatic D3.js bindings for Redux. 202 | 203 | - **marko-redux** 204 | https://github.com/charlieduong94/marko-redux 205 | Simple redux bindings for marko, inspired by react-redux 206 | 207 | - **aurelia-redux-connect** 208 | https://github.com/istrau2/aurelia-redux-connect 209 | Provides dependency injection and decorators for using Redux with Aurelia. 210 | 211 | - **riot-redux-router** 212 | https://github.com/collingreen/riot-redux-router 213 | Dead simple integration between the riot js router and redux. Combine Riot's router and redux so you can easily dispatch route actions to simultaneously update your store and the browser url. 214 | 215 | - **glace** 216 | https://github.com/Fordi/glace 217 | Glacé aspires to be a simple, fast, small, and elegant view layer for simple Redux-based apps. Its templates are entirely well-formed XML fragments and it outputs real DOM in real time. -------------------------------------------------------------------------------- /middleware-network-requests.md: -------------------------------------------------------------------------------- 1 | ### Middleware - Network Requests 2 | 3 | #### Fetch 4 | 5 | - **redux-request** 6 | https://github.com/TossShinHwa/redux-request 7 | Uses either fetch or superagent to make requests. 8 | 9 | - **redux-fetch-middleware** 10 | https://github.com/LuckyZhou880808/redux-fetch-middleware 11 | A middleware for redux that help to fetch data from rest API 12 | 13 | - **redux-fetch-middleware** 14 | https://github.com/RevoltTV/redux-fetch-middleware 15 | A middleware for Redux that uses isomorphic-fetch to perform network requests 16 | 17 | - **redux-composable-fetch** 18 | https://github.com/jasonslyvia/redux-composable-fetch 19 | A fetch middleware with extensible and opt-in functionalities like cache or log for Redux 20 | 21 | - **redux-fetcher** 22 | https://github.com/vgno/redux-fetcher 23 | Really simple isomorphic fetch for Redux. Can be used in any Redux project that uses redux-api-middleware. 24 | 25 | - **redux-middleware-fetch** 26 | https://github.com/fantasywind/redux-middleware-fetch 27 | Redux Whatwg Fetch Middleware 28 | 29 | - **lp-redux-api** 30 | https://github.com/LaunchPadLab/lp-redux-api 31 | Fetch-based API middleware. Handles JSON extraction, CSRF tokens, and JWTs. 32 | 33 | - **redux-fetch-middleware** 34 | https://github.com/travi/redux-fetch-middleware 35 | middleware to enable async data fetching as the result of a dispatched action 36 | 37 | - **redux-middleware-api-fetch** 38 | https://github.com/dakolech/redux-middleware-api-fetch 39 | Redux middleware to perform HTTP requests with fetch 40 | 41 | #### Axios 42 | 43 | - **redux-axios-middleware** 44 | https://github.com/svrcekmichal/redux-axios-middleware 45 | Redux middleware for fetching data with axios HTTP client 46 | 47 | - **redux-callApi-middleware** 48 | https://github.com/fskinner/redux-callApi-middleware 49 | Redux middleware for API calls through Axios 50 | 51 | - **redux-axios-api-middleware** 52 | https://github.com/mikeyamadeo/redux-axios-api-middleware 53 | redux middleware using axios making api calls with redux easy 54 | 55 | - **redux-small-axios-middleware** 56 | https://github.com/vaeum/redux-small-axios-middleware 57 | A small middleware to handle AJAX requests with Axios 58 | 59 | 60 | ### General 61 | 62 | - **redux-request-middleware** 63 | https://github.com/founderlab/redux-request-middleware 64 | Works like redux promise middleware. Resolves request objects from superagent or BackboneORM models. Can work with anything with a similar callback style api. 65 | 66 | - **redux-req** 67 | https://github.com/jedirandy/redux-req 68 | A redux middleware for handling HTTP requests It's based on plain old XHR, though not as fancy as fetch, it simply does the job and there's no need for extra dependencies. 69 | 70 | - **reduxr-async** 71 | https://github.com/chrisdavies/reduxr-async 72 | Easily and cleanly handle AJAX in Redux. 73 | 74 | - **redux-api-middleware** 75 | https://github.com/agraboso/redux-api-middleware 76 | Redux middleware for calling an API. 77 | 78 | - **redux-track-async** 79 | https://github.com/lronhoj/redux-track-async 80 | A lib for tracking pending async requests. Exposes middleware & a reducer 81 | 82 | - **multi-action-api-middleware** 83 | https://github.com/gkosharov/multi-action-api-middleware 84 | Redux api middleware for handling simultaneous asynchronous action dispatches (api calls). 85 | 86 | - **redux-cached-api** 87 | https://github.com/VerenigingCampusKabel/redux-cached-api 88 | Redux middleware for calling and caching a (REST) API 89 | 90 | - **redux-api-middleman** 91 | https://github.com/CodementorIO/redux-api-middleman 92 | A Redux middleware extracting the asynchronous behavior of sending API requests. 93 | 94 | - **redux-remote-resource** 95 | https://github.com/tylerFowler/redux-remote-resource 96 | Flexible Redux middleware for making remote API calls 97 | 98 | - **redux-graphql-middleware** 99 | https://github.com/gtg092x/redux-graphql-middleware 100 | Generate GraphQL queries with Redux middleware . 101 | 102 | - **redux-rest-easy** 103 | https://github.com/oscarekholm/redux-rest-easy 104 | A simple Redux middleware for declarative data fetching - helps you REST easy 105 | 106 | - **redux-rest-api** 107 | https://github.com/restlessbit/redux-rest-api 108 | Middleware that gives you a uniform way to define API actions in Redux applications. 109 | 110 | - **redux-middleware-async** 111 | https://github.com/robinpowered/redux-middleware-async 112 | Redux middleware for performing predictable asynchronous actions and tracking request status 113 | 114 | - **Data Pipeline** 115 | https://github.com/iwate/data-pipeline 116 | Fetch URLs and modify data as it returns 117 | 118 | - **redux-token-api-middleware** 119 | https://github.com/eadmundo/redux-token-api-middleware 120 | A redux middleware for making calls to APIs with token-based auth, automatically requesting a new token if needed. Actions can be calls to single or multiple API endpoints. 121 | 122 | - **redux-routed-api-middleware** 123 | https://github.com/aliaksandr-master/redux-routed-api-middleware 124 | Redux api middleware for separate your api routes, api actions, and interceptors. provide state normalization, db reducer 125 | 126 | - **redux-callapi-middleware** 127 | https://github.com/Reaverart/redux-callapi-middleware 128 | Redux CallAPI Middleware to make API calls in generic and declarative way. 129 | 130 | - **u5-redux-fetch** 131 | https://github.com/Chris927/u5-redux-fetch 132 | Redux middleware to fetch from a GraphQL API 133 | 134 | - **mappersmith-redux-middleware** 135 | https://github.com/tulios/mappersmith-redux-middleware 136 | A middleware for mappersmith which dispatches your request lifecycle to a redux store 137 | 138 | - **redux-ajaxable** 139 | https://github.com/mcoetzee/redux-ajaxable 140 | Flux Standard Ajax Action compliant middleware built with RxJS 141 | 142 | - **redux-api-request** 143 | https://github.com/mahaplatform/redux-api-request 144 | Redux middleware for making API requests 145 | 146 | - **redux-simple-request** 147 | https://github.com/lmuntaner/redux-simple-request 148 | A very simple middleware for making API requests 149 | 150 | - **redux-simple-api** 151 | https://github.com/kazagkazag/redux-simple-api 152 | A middleware that helps manage API requests by handling action suffixes, session tokens, and more 153 | 154 | - **roadhog-saga** 155 | https://github.com/alakarteio/roadhog-saga 156 | Library that is connected to redux, use to fetch api, and to dispatch saga event 157 | 158 | - **japicam** 159 | https://github.com/epiqueras/japicam 160 | JAPICAM is a tool for simplifying connections to JSON APIs. It works really well as Redux Middleware, but it's also helpful in any setting. 161 | 162 | - **disfetch** 163 | https://github.com/wafflepie/disfetch 164 | Disfetch is a library for sending HTTP requests and dispatching Redux actions accordingly. 165 | 166 | - **redux-swagger-client** 167 | https://github.com/noh4ck/redux-swagger-client 168 | An attempt to add asynchronous swagger api calls to redux. It works by dispatching an action that includes the field swagger that takes a function and passes the swagger client element to that function. If the swagger spec has not yet been parsed, the action will get queued. 169 | 170 | - **redux-jwt-protected-middleware** 171 | https://github.com/jimjeffers/redux-jwt-protected-middleware 172 | This middleware injects a JWT access token onto part of a qualifying action's payload. If the current access token exists but is not valid, you will be able to refresh the user's current access token prior to the action getting passed on to your API middleware. 173 | 174 | - **redux-req-middleware** 175 | https://github.com/pmagaz/redux-req-middleware 176 | redux-req-middleware is a Redux store middleware for fetching data using HTTP action request and chain actions. 177 | 178 | - **rest-redux** 179 | https://github.com/nachiket-p/rest-redux 180 | Provides actions, reducers, and middleware to communicate with REST API Backend. 181 | 182 | - **redux-insistent-requests** 183 | https://github.com/wacii/redux-insistent-requests 184 | Serializable requests with retries 185 | 186 | - **redux-graphql-subscriptions** 187 | https://github.com/hally9k/redux-graphql-subscriptions 188 | A Redux middleware for handling GraphQL subscriptions. 189 | 190 | - **redux-api-petitioner** 191 | https://github.com/teologov/redux-api-petitioner 192 | Simple client-agnostic Redux API middleware, and allows you to create AJAX requests to your API in a declarative way. It accepts your client instance and works with it through the redux actions. I.e. you create requests via redux actions. 193 | 194 | - **multi-routing-api** 195 | https://github.com/aliaksandr-master/multi-routing-api 196 | A R edux api middleware to separate your api routes, api actions, and interceptors. Provides state normalization and a DB reducer. 197 | 198 | - **redux-shapeshifter-middleware** 199 | https://github.com/dawaa/redux-shapeshifter-middleware 200 | Redux middleware for empowering your actions using axios and qs libraries combined 201 | 202 | - **redux-pure-fetch** 203 | https://github.com/Shawn-Cao/redux-pure-fetch 204 | A declarative Redux middleware to manage asynchronous service calls and side-effects, so the redux action creator & reducer stay pure can stay pure and actions still serializable 205 | 206 | - **redux-http-request-middleware** 207 | https://github.com/hk-labs/redux-http-request-middleware 208 | Add the HTTP request ability to your own redux actions. 209 | 210 | - **redux-network-middleware** 211 | https://github.com/jacklam718/redux-network-middleware 212 | A redux network middleware for handling API calls and responses. -------------------------------------------------------------------------------- /middleware-sockets-adapters.md: -------------------------------------------------------------------------------- 1 | ### Middleware - Sockets and Adapters 2 | 3 | 4 | #### Websockets 5 | 6 | - **redux-socket** 7 | https://github.com/quirinpa/redux-socket 8 | A redux middleware that allows you to trigger a socket request on the client-side and dispatch an action in response. 9 | 10 | - **cape-redux-socket** 11 | https://github.com/cape-io/cape-redux-socket 12 | Socket middleware, reducer, actions, constants 13 | 14 | - **redux-socket-middleware** 15 | https://github.com/madewithlove/redux-socket-middleware 16 | Redux middleware that dispatches an action to all connected clients 17 | 18 | - **socket.io-redux** 19 | https://github.com/sergiodxa/socket.io-redux 20 | Redux middleware to emit actions to a socket.io server 21 | 22 | - **redux-ws** 23 | https://github.com/arturmuller/redux-ws 24 | Redux middleware for WebSockets communication. 25 | 26 | - **redux-effects-socketio** 27 | https://github.com/alexjg/redux-effects-socketio 28 | Redux effects middleware for socketio 29 | 30 | - **redux-socket-io** 31 | https://github.com/nkt/redux-socket-io 32 | Socket.io middleware for Redux. 33 | 34 | - **redux-socket-cluster** 35 | https://github.com/mattkrick/redux-socket-cluster 36 | A socket-cluster state snatcher. Socket cluster is awesome, but it doesn't share it's state, so you always have to go to your stored socket to find out. This tiny package grabs all the tasty little state bits & sticks em in your redux store. Then, it sets up listeners for updates to keep those state bits nice and fresh. 37 | 38 | - **redux-saga-sc** 39 | https://github.com/stipsan/redux-saga-sc 40 | Provides sagas to easily dispatch redux actions over SocketCluster websockets 41 | 42 | - **redux-socket.io-middleware** 43 | https://github.com/czytelny/redux-socket.io-middleware 44 | Another dead-simple middleware which allows you to connect Redux and Socket.io. It uses meta property of your action object to recognize whether send it to backend, or not. 45 | 46 | - **resocket** 47 | https://github.com/laumair/resocket 48 | Resocket is a socket.io wrapper and middleware for React and Redux applications. It helps you abstract away all the socket.io implementations in your app. 49 | 50 | - **redux-socket.io-connect** 51 | https://github.com/michaelmitchell/redux-socket.io-connect 52 | Relays Redux actions to the server, where reducer-like "handlers" can execute server code and dispatch actions back to the client. 53 | 54 | - **redux-socket.io-middleware** 55 | https://github.com/Vandise/redux-socket.io-middleware 56 | An implementation of a generic socket.io middleware. Implemented with the notion that the application will be utilizing mutliple sockets. 57 | 58 | - **redux-sockjs** 59 | https://github.com/superwf/redux-sockjs 60 | Use sockjs to pub and sub redux actions 61 | 62 | - **redux-channels** 63 | https://github.com/danielfarrell/redux-channels 64 | Connector library for redux and websocket channels(ie, socket.io/Phoenix/ActionCable) 65 | 66 | - **redux-action-emit-middleware** 67 | https://github.com/pafciu17/redux-action-emit-middleware 68 | Middleware for emitting redux actions over socket 69 | 70 | - **redux-saga-websocket** 71 | https://github.com/wangtao0101/redux-saga-websocket 72 | Websockets for redux and redux-saga, which can integrate all websocket channels to one channel 73 | 74 | - **monux** 75 | https://github.com/ericwpeterson/monux 76 | Marrying Redux and MonObjects to provide a structured state shape and maximize code reuse with socket.io. 77 | 78 | - **redux-socket.io** 79 | https://github.com/itaylor/redux-socket.io 80 | An opinionated connector between socket.io and redux. 81 | 82 | - **redux-socket.io-client** 83 | https://github.com/my0sot1s/redux-socket.io-client 84 | Simple Middleware for realtime with socket.io-client 85 | 86 | - **redux-sockjs-middleware** 87 | https://github.com/nelsongarym/redux-sockjs-middleware 88 | A redux middleware that manages a sockjs connection and subscriptions 89 | 90 | - **redux-websocket** 91 | https://github.com/giantmachines/redux-websocket 92 | A Redux middleware for managing data over a WebSocket connection. This middleware uses actions, dispatched with Redux to interact with a WebSocket server including connect, disconnect, message sending, and message receiving. All actions follow the Flux Standard Action model. 93 | 94 | - **redux-websocket-middleware** 95 | https://github.com/notgiorgi/redux-websocket-middleware 96 | Native WebSocket integration in redux 97 | 98 | - **redux-sockets** 99 | https://github.com/SharonGrossman/redux-sockets 100 | A simple module to help simplify the integration of socket.io with your redux application. Emits client actions to the server if a socket payload is presented, initializes socketio connection and handles connection actions to the server and client. 101 | 102 | - **redux-autobahn-js** 103 | https://github.com/brycedarling/redux-autobahn-js 104 | Autobahn-js middleware for Redux 105 | 106 | - **redux-autobahn** 107 | https://github.com/saadtazi/redux-autobahn 108 | A redux middleware for WAMP protocol using autobahn. 109 | 110 | - **redux-socket-middleware** 111 | https://github.com/AlexChittock/redux-socket-middleware 112 | Passes redux actions to a web sockets server for server-side processing. 113 | 114 | - **redux-socketio** 115 | https://github.com/pak11273/redux-socketio 116 | A redux/socketIO middleware implementation 117 | 118 | - **sockjs-middleware** 119 | https://github.com/rodique/sockjs-middleware 120 | Redux middleware for SockJS 121 | 122 | - **bsock-middleware** 123 | https://github.com/Bucko13/bsock-middleware 124 | Redux middleware for websocket actions using the bsock client 125 | 126 | - **redux-websocket-bridge** 127 | https://github.com/compulim/redux-websocket-bridge 128 | Bridge WebSocket messages and Redux actions, by dispatching WebSocket messages into the Redux store and lifting Redux actions to WebSockets. 129 | 130 | - **react-redux-websocket** 131 | https://github.com/igormael/react-redux-websocket 132 | A simple middleware to emit and receive actions through a websocket. It uses a property of your action object to configurate the dispatch. 133 | 134 | #### Firebase 135 | 136 | - **redux-react-firebase** 137 | https://github.com/tiberiuc/redux-react-firebase 138 | Use Firebase with React and Redux in ES6. Integrated into Redux, automatic binding/unbinding, declarative decorator syntax for React components, support for nested props, 0ut of the box support for authentication (with auto load user profile). 139 | 140 | - **redux-firebase** 141 | https://github.com/colbyr/redux-firebase 142 | Declarative firebase queries for redux. 143 | 144 | - **firedux** 145 | https://github.com/adjohnson916/firedux 146 | Firedux (fiery·ducks) wraps the Firebase JavaScript API to dispatch Redux actions that optimisically & immediately read/write to an in-memory subset of your data from Firebase, then asynchronously pull & push data in the background. Also supports some authentication methods and actions. 147 | 148 | - **refire** 149 | https://github.com/hoppula/refire 150 | Declarative Firebase bindings for Redux and React. Refire keeps your local Redux store in sync with selected Firebase paths. You can declaratively bind Firebase paths as Strings, Objects or Arrays. You can also specify queries based on Redux state (e.g. currently logged in user or route parameter) and Refire will automatically subscribe and unsubscribe your bindings when state changes. 151 | 152 | - **redux-firebase** 153 | https://github.com/gobadiah/redux-firebase 154 | Provides some added functionality when using redux with firebase, such as anonymous use, offline recovery. Redux firebase makes the connection between your firebase backend and your redux store, using a schema. 155 | 156 | - **redux-firebasev3** 157 | https://github.com/prescottprue/redux-firebasev3 158 | Use Firebase with React and Redux in ES6 159 | 160 | - **redfire** 161 | https://github.com/ThadeuLuz/redfire 162 | Microscopic Redux state + Firebase bindings 163 | 164 | - **Redux-Firebase-Actions** 165 | https://github.com/distilagency/Redux-Firebase-Actions 166 | A set of Redux actions and accompanying reducer for Firebase 167 | 168 | - **redux-firebase-mirror** 169 | https://github.com/pcardune/redux-firebase-mirror 170 | A library to help you easily mirror firebase data inside a redux store. 171 | 172 | - **reduxonfire** 173 | https://github.com/edoardolincetto/reduxonfire 174 | Just a simple, scalable implementation of Firebase with Redux for React.js 175 | 176 | - **redux-saga-firebase** 177 | https://github.com/n6g7/redux-saga-firebase 178 | A redux saga integration for firebase 179 | 180 | - **duckbase** 181 | https://github.com/WadePeterson/duckbase 182 | React + Redux Wrapper for Firebase 183 | 184 | - **firebase-sync** 185 | https://github.com/tasking/firebase-sync 186 | Bind your firebase backend to your redux state with a dead simple component based approach. 187 | 188 | - **reduxfire** 189 | https://github.com/ThadeuLuz/reduxfire 190 | Redux is a predictable state container for JavaScript apps. Firebase complements it perfectly by providing an easy-to-use, realtime data source for populating redux's state by dispatching actions. With ReduxFire, it only takes a few lines of JavaScript to integrate Firebase data into your (pure|React|Angular|Vue|*) Redux application. 191 | 192 | - **redux-fire-auth** 193 | https://github.com/flasd/redux-fire-auth 194 | Helper to keep the Redux State in sync with the Firebase Auth State. 195 | 196 | - **react-stateful-firestore** 197 | https://github.com/paularmstrong/react-stateful-firestore 198 | Provides bindings for authentication, Firestore, messaging, and storage data in React. Caches Firestore and authentication with Redux to prevent lag on data that has already been queried. Updates in real-time by default. 199 | 200 | 201 | #### Meteor 202 | 203 | - **redux-ddp** 204 | https://github.com/rclai/redux-ddp 205 | Get DDP collection data synced straight into a Redux store instead of minimongo and attempting optimistic updates. 206 | 207 | - **redux-meteorware** 208 | https://github.com/shawnmclean/redux-meteorware 209 | Meteor middleware for Redux. This Redux middleware allows us to subscribe and load meteor data through actions and have them returned to the reducers when loaded. 210 | 211 | - **meteor-redux-middleware** 212 | https://github.com/samybob1/meteor-redux-middlewares 213 | Redux middlewares that allow you to sync the store with Mongo and any reactive sources 214 | 215 | - **reactive-redux** 216 | https://github.com/vjau/reactive-redux 217 | Allow you to generate a reactive data source for Meteor/Tracker from a part of a Redux tree. 218 | 219 | - **ddp-connector** 220 | https://github.com/theclinician/ddp-connector 221 | DDP client bindings for react-redux 222 | 223 | - **ddp-redux** 224 | https://github.com/apendua/ddp 225 | ddp-redux is a brand new ddp client that will allow you to fetch resources from your ddp server in a completely declarative way. Subscriptions/ methods (queries) parameters are evaluated by selectors and all you need to do is to extract collection data from the redux store. 226 | 227 | 228 | #### Other Connections 229 | 230 | - **redux-zmq** 231 | https://github.com/code-mancers/redux-zmq 232 | A redux middleware for zeromq 233 | 234 | - **redux-matter** 235 | https://github.com/KyperTech/redux-matter 236 | Redux middleware, actions, and reducer for Matter. 237 | 238 | - **redux-pubnub-action-sync-middleware** 239 | https://github.com/danislu/redux-pubnub-action-sync-middleware 240 | Middleware for syncing redux actions between app instances via pubnub. 241 | 242 | - **ez-redux** 243 | https://github.com/dcoellarb/ez-redux 244 | Library to manage parse objects and simplify integration with parse 245 | 246 | - **Redux Swagger Client** 247 | https://github.com/noh4ck/redux-swagger-client 248 | Add asynchronous Swagger api calls to Redux 249 | 250 | - **redux-cablecar** 251 | https://github.com/ndhays/redux-cablecar 252 | A Redux middleware to connect Redux with Rails 5 ActionCable 253 | 254 | - **horizon-redux** 255 | https://github.com/shanecav/horizon-redux 256 | A small library that helps you connect Horizon.io with Redux in a flexible, non-intrusive way. 257 | 258 | - **feathers-react-redux** 259 | https://github.com/saiichihashimoto/feathers-react-redux 260 | Unofficial Feathers bindings for React-Redux. React-Redux is great. Feathers is fantastic. feathers-react-redux aims to tie these two together. 261 | 262 | - **Django Redux** 263 | https://github.com/fcurella/django_redux 264 | A re-usable bridge between Django channels and Redux. 265 | 266 | - **twiliojs-redux** 267 | https://github.com/yarcub/twiliojs-redux 268 | Twilio's javascript SDK middleware for Redux. 269 | 270 | - **redux-loopback** 271 | https://github.com/TimPerry/redux-loopback 272 | Loopback middleware for redux 273 | 274 | - **feathers-redux-immutable** 275 | https://github.com/collegepulse/feathers-redux-immutable 276 | An immutable, redux data store for FeathersJS services. 277 | 278 | - **deepstream-redux** 279 | https://github.com/bunchtogether/deepstream-redux 280 | Tools for connecting Redux to a Deepstream server. 281 | -------------------------------------------------------------------------------- /other-resources.md: -------------------------------------------------------------------------------- 1 | ### Other Resources 2 | 3 | 4 | #### Redux Links 5 | 6 | - **Redux Docs: Ecosystem** 7 | https://redux.js.org/introduction/ecosystem 8 | A vetted selection of useful links and libraries 9 | 10 | - **Awesome Redux** 11 | https://github.com/xgrommx/awesome-redux 12 | A full list of any and all links related to Redux 13 | 14 | - **Reactiflux** 15 | http://www.reactiflux.com 16 | A community for discussion of React-related technologies. Numerous channels for general discussion, help / questions, and specific libraries such as Redux. Uses the Discord chat service. 17 | 18 | #### Community-Defined Standards 19 | 20 | - **Flux Standard Actions** 21 | https://github.com/acdlite/flux-standard-action 22 | A human-friendly standard for Flux action objects. 23 | 24 | - **Redux Standard Actions** 25 | https://github.com/kolodny/redux-standard-action 26 | A human-friendly standard for Redux action objects, based off of FSA. 27 | 28 | - **Canonical Reducer Composition** 29 | https://github.com/gajus/canonical-reducer-composition 30 | A spec for organizing reducers around domains. 31 | 32 | - **Black Pixel Redux Handbook** 33 | http://bpxl-labs.github.io/redux-handbook/ 34 | A guideline for structuring scalable Redux applications. It encourages conventions and best practices adopted at Black Pixel. 35 | 36 | - **redux-convention** 37 | https://github.com/gajus/redux-convention 38 | Facilitates conversion of Flux Standard Action (FSA) to Canonical Composition Action (CCA) and vice-versa. 39 | 40 | - **Ducks: Redux Reducer Bundles** 41 | https://github.com/erikras/ducks-modular-redux 42 | A proposal for bundling reducers, action types and actions when using Redux 43 | 44 | - **re-ducks** 45 | https://github.com/alexnm/re-ducks 46 | An attempt to extend the original proposal for redux modular architecture 47 | 48 | - **duck-stack** 49 | https://github.com/liamross/duck-stack 50 | A proposal for a simple, reusable and compartmentalized file structure for Redux projects. 51 | 52 | - **cache-reducks** 53 | https://github.com/guilatrova/cache-reducks 54 | Proposal to extends both duck and re-ducks ideas to handle Operations + Caching operation results with React + Redux. 55 | 56 | - **Flux Standard Data Storage** 57 | https://github.com/sagiavinash/flux-standard-data-storage 58 | A standard for Flux store objects and compatible action objects 59 | -------------------------------------------------------------------------------- /project-scaffolding.md: -------------------------------------------------------------------------------- 1 | ### Project Scaffolding and CLIs 2 | 3 | - **redux-generators** 4 | https://github.com/bpxl-labs/redux-generators 5 | Redux Generators is a lightweight, opinionated CLI that helps scaffold a scalable approach to Redux. 6 | 7 | - **redux-thunk-scaffolding** 8 | https://github.com/jmakeig/redux-thunk-scaffolding 9 | Generate scaffolding for asynchronous Redux actions, in the style of redux-thunk middleware. 10 | 11 | - **generator-redux** 12 | https://github.com/banderson/generator-redux 13 | CLI for Redux: next-gen functional Flux/React with devtools. 14 | 15 | - **generator-redux-app** 16 | https://github.com/chentsulin/generator-redux-app 17 | Scaffold out a redux app 18 | 19 | - **redux-cli** 20 | https://github.com/SpencerCDixon/redux-cli 21 | An opinionated CLI for building redux/react apps quicker 22 | 23 | - **redux-boot** 24 | https://github.com/choko-org/redux-boot 25 | Modular Redux bootstrap with asynchronous side-effects. Minimal Framework using Redux to develop modularized universal (backend and frontend) applications, based on functional programming paradigms and friends such as Map and Reduce, Immutability and Reactive programming. 26 | 27 | - **redux-bootstrap** 28 | https://github.com/FullstackTypeScript/redux-bootstrap 29 | A `bootstrap()` function for initializing Redux applications. This module works by exporting a `bootstrap` function you can call in your project. It does not generate files for you – it is not a project template or project scaffolding tool. This library handles most of the common application initialization/bootstrapping that takes place every time you create a new Redux project. 30 | 31 | - **mikey** 32 | https://github.com/Mikeysax/mikey 33 | Mikey is a node command-line tool for generating React-Redux projects, React-Redux containers, React components, React actions, React reducers, and React helpers. 34 | 35 | - **Kea** 36 | https://github.com/mariusandra/kea 37 | kea provides: a scaffolding tool with multiple generators; a modular code structure that's optimized for clarity; a guide to teach you how it all fits together 38 | 39 | - **react-redux-workbench** 40 | https://github.com/calvinfroedge/react-redux-workbench 41 | A starting point for creating React components, including babel, webpack, mocha tests, redux, hot reloads, etc. 42 | 43 | - **Lore** 44 | https://github.com/lore/lore 45 | Respectully opinionated convention-driven framework for building React applications. Built on React, Webpack, Redux, and React-Router. 46 | 47 | - **EOS-Redux** 48 | https://github.com/amattson21/eos-redux 49 | Redux CLI and Framework. Can generate a starting project file tree, as well as individual action creators and reducers. 50 | 51 | - **Racket** 52 | https://github.com/mohebifar/racket 53 | Racket is a yeoman generator for creating universal/isomorphic web applications, using React and Redux. 54 | 55 | - **create-redux-app** 56 | https://github.com/delvallejonatan/generator-create-redux-app 57 | Add Redux, styled-components, and CLI generation of components and containers on top of create-react-app 58 | 59 | - **redux-boilerplate-helpers** 60 | https://github.com/alxlu/redux-boilerplate-helpers 61 | A commandline tool and small helper library that helps you cut down on the amount of typing you need to do while writing Redux boilerplate. redux-boilerplate-helpers's tool parses your code into an AST (Abstract Syntax Tree) to automate adding Redux boilerplate code into your existing files. If you already have existing* action creators, constants, or a reducer in a file, it will ensure the code you want to add is put in the correct place. And if you are missing any of the files, the tool will create new ones for you. 62 | 63 | - **hmr-redux-mapper** 64 | https://github.com/paulbrom/hmr-redux-mapper 65 | A build tool whose purpose is to eliminate the need to manually specify the Redux components which are needed for hot swapping upon route change. The tool is designed to recursively walk each component in your project, starting at each route container, looking for all the Redux modules that are imported either directly by the route container or by any of its child components. That information is written in a mapping file (reducerMap.js). You can then use the reduxMapperLoader integration module to automatically hot-swap all the Redux modules needed for a new route without the need to write any boilerplate code in your routing handlers to manually load the necessary modules. 66 | 67 | - **redux-context** 68 | https://github.com/zhengcan/redux-context 69 | A redux delegate object used to create store, render page, and integrate React-Router and more. Has functions that encapsulate setting up a Redux store, React-Router, and the Redux DevTools, and rendering them. 70 | 71 | - **redux-tool** 72 | https://github.com/danielstern/redux-tool 73 | Redux-Tool, an unopinionated helper to create your Redux files for you, handling all the boilerplate. Redux apps are great, but often creating just one new user interaction requires touching 8, 9, even 10 or more files. This tool lets you automate that process easily. 74 | 75 | - **crud-foyer** 76 | https://github.com/croscon/crud-foyer 77 | Lightly opinionated mostly configurable cli tool to generate redux files for new models 78 | 79 | - **rrmw** 80 | https://github.com/sedoyjan/rrmw 81 | A CLI tool to help generate React-Redux modules from templates 82 | -------------------------------------------------------------------------------- /routing.md: -------------------------------------------------------------------------------- 1 | ### Routing 2 | 3 | - **react-router-redux** 4 | https://github.com/reactjs/react-router-redux 5 | Ruthlessly simple bindings to keep react-router and redux in sync 6 | 7 | - **redux-router** 8 | https://github.com/acdlite/redux-router 9 | Redux bindings for React Router – keep your router state inside your Redux store 10 | 11 | - **routex** 12 | https://github.com/michalkvasnicak/routex 13 | Simple router for Redux universal applications. Can be used with React too. 14 | 15 | - **redux-vstack-router** 16 | https://github.com/vslinko/redux-vstack-router 17 | Helpers to bind vstack-router to redux 18 | 19 | - **redux-routing** 20 | https://github.com/callum/redux-routing 21 | Universal routing built on top of redux. 22 | 23 | - **redux-tiny-router** 24 | https://github.com/Agamennon/redux-tiny-router 25 | A Router made for Redux and made for universal apps! stop using the router as a controller... its just state! 26 | 27 | - **redux-history-transitions** 28 | https://github.com/johanneslumpe/redux-history-transitions 29 | History transitions based on arbitrary actions. This store enhancer allows you to co-locate transitions next to your actions and have them automatically executed on your history instance, after the action has been dispatched. 30 | 31 | - **redux-router5** 32 | https://github.com/router5/redux-router5 33 | Router5 integration with redux. 34 | 35 | - **universal-redux-router** 36 | https://github.com/colinmeinke/universal-redux-router 37 | A router that turns URL params into first-class Redux state and runs action creators on navigation 38 | 39 | - **redux-reroute** 40 | https://github.com/ArnaudRinquin/redux-reroute 41 | Location reducer and routing helpers for redux. 42 | 43 | - **redux-routes** 44 | https://github.com/matthewmueller/redux-routes 45 | Simple redux history middleware. 46 | 47 | - **redux-react-router-middleware** 48 | https://github.com/aarongloege/redux-react-router-middleware 49 | A middleware for redux that allows for transition definitions to perform with react-router. 50 | 51 | - **redux-addressbar** 52 | https://github.com/Yaska/redux-addressbar 53 | Treat the address bar as just another input, and render your app only from Redux store state. 54 | 55 | - **redux-title** 56 | https://www.npmjs.com/package/redux-title 57 | Synchronization of document title and redux state 58 | 59 | - **redux-router-state** 60 | https://github.com/gadicc/redux-router-state 61 | Store router state in Redux and route via redux 62 | 63 | - **redux-little-router** 64 | https://github.com/FormidableLabs/redux-little-router 65 | A tiny router for Redux that lets the URL do the talking. 66 | 67 | - **redux-director** 68 | https://github.com/mandeepbrar/redux-director 69 | Redux bindings to director router. Works as front end router for redux react applications. 70 | 71 | - **react-router-route-reducers** 72 | https://github.com/mrtnbroder/react-router-route-reducers 73 | Add reducer to your routes and let them be composed and combined into a single state object that follows your route-structure. 74 | 75 | - **redux-history-sync** 76 | https://github.com/cape-io/redux-history-sync 77 | Essentially, this module syncs browser history locations with a Redux store. If you are looking to read and write changes to the address bar via Redux this might be for you. 78 | 79 | - **router-redux** 80 | https://github.com/subuta/router-redux 81 | View framework agnostic router for redux :) This is react-router-redux for your vdom-based project. 82 | 83 | - **Redux.Routes.Renderer** 84 | https://github.com/sequencemedia/Redux.Routes.Renderer 85 | A Promise interface for rendering isomorphic React Redux components in Node. 86 | 87 | - **Redux Router Kit** 88 | https://github.com/zapier/redux-router-kit 89 | Redux Router Kit is a routing solution for React that leverages Redux to store routing and transition states and enable powerful middleware and connect-powered components. 90 | 91 | - **redux-bike-router** 92 | https://github.com/caesarsol/redux-bike-router 93 | A very tiny router implementation for Redux, reactive to state changes. As simple as a :bike: . 94 | 95 | - **Redux Unity Router** 96 | https://github.com/auru/redux-unity-router 97 | Simple routing for your redux application. The main purpose of this router is to mirror your browser history to the redux store and help you easily declare routes. 98 | 99 | - **i-redux-navigation** 100 | https://github.com/ebaranov/i-redux-navigation 101 | Navigation solution for redux applications 102 | 103 | - **redux-antirouter** 104 | https://github.com/modernserf/redux-antirouter 105 | This is a collection of utilities for routes in a React/Redux app that treats the address bar as an input and URLs as a serialization format. 106 | 107 | - **redux-route-controller** 108 | https://github.com/theseushu/redux-route-controller 109 | Control your react rendering outside react components. Good for loading code chunks, preloading data and so on 110 | 111 | - **react-redux-transition-manager** 112 | https://github.com/kellyrmilligan/react-redux-transition-manager 113 | Higher order component to enable loading states between route transitions 114 | 115 | - **react-router-dynamic-matcher** 116 | https://github.com/sleexyz/react-router-dynamic-matcher 117 | Match routes dynamically based on your Redux state 118 | 119 | - **eleanor** 120 | https://github.com/orzechowskid/eleanor 121 | Elegant and nearly zero-config routing, for React/Redux apps 122 | 123 | - **redux-first-router** 124 | https://github.com/faceyspacey/redux-first-router 125 | seamless redux-first routing -- just dispatch actions 126 | 127 | - **React Redux Dynamic Router Reducer Plugin** 128 | https://github.com/madeinfree/redux-plugin-dynamic-router-reducer 129 | Redux plugin for React Router to run dynamic reducers 130 | 131 | - **connected-react-router** 132 | https://github.com/supasate/connected-react-router 133 | A Redux binding for React Router v4. Synchronize router state with redux store with uni-directional flow (history -> store -> router -> components). 134 | 135 | - **redux-tower** 136 | https://github.com/kuy/redux-tower 137 | Saga powered routing engine for Redux apps. redux-saga-tower provides a way to fully control client-side routing with its related side effects such as data fetching, user authentication, fancy animations. 138 | 139 | - **rrrouter** 140 | https://github.com/plandem/rrrouter 141 | React/Redux/Router - simple, but powerful router for React with built-in support for redux. 142 | 143 | - **redux-pages** 144 | https://github.com/ryo33/redux-pages 145 | A middleware-friendly routing engine that encapsulates raw URL paths. 146 | 147 | - **ion-router** 148 | https://github.com/cellog/ion-router 149 | Elegant powerful routing based on the simplicity of storing url as state 150 | 151 | - **redux-saga-router** 152 | https://github.com/jfairbank/redux-saga-router 153 | Handle route changes with redux-saga. Supports HTML5 `pushState` and hashes. Works with react-router too. 154 | 155 | - **router-redux-params** 156 | https://github.com/Darmikon/router-redux-params 157 | React router params inside redux store. 158 | 159 | - **router-redux** 160 | https://github.com/subuta/router-redux 161 | A view-framework-agnostic router for Redux, with pushState/popState-based client side routing 162 | 163 | - **redux-url** 164 | https://github.com/jedirandy/redux-url 165 | A redux middleware that does one simple job: matches a url pattern and dispatch an action. 166 | 167 | - **redux-location-state** 168 | https://github.com/spotify/redux-location-state 169 | Utilities for reading & writing Redux store state to & from the URL 170 | 171 | - **redux-json-router** 172 | https://github.com/mksarge/redux-json-router 173 | Declarative, Redux-first routing for React/Redux browser applications. 174 | 175 | - **redux-first-routing** 176 | https://github.com/mksarge/redux-first-routing 177 | A minimal, framework-agnostic base for accomplishing Redux-first routing. 178 | 179 | - **naglfar** 180 | https://github.com/benoneal/naglfar 181 | A router that keeps all state in redux. It treats the url like a form input: it fires actions on change which update the location in your state. This is accessible from any connected component: no need for a separate RouteProvider or other such nonsense. 182 | 183 | - **spark-router** 184 | https://github.com/tomzmtl/spark-router 185 | An opinionated, simple routing library for React/Redux applications 186 | 187 | - **redux-ui-router** 188 | https://github.com/neilff/redux-ui-router 189 | ngRedux bindings for Angular UI Router - Keep your router state inside your ngRedux store. 190 | 191 | - **redux-query-sync** 192 | https://github.com/Treora/redux-query-sync 193 | Treat the URL query parameters as exposed variables of your Redux state. For example, /mypage.html?p=14 could correspond to a state object containing {pageNumber: 14}. Any changes to the store state are reflected in the URL. Vice versa, if the URL is changed using the history module, the changed parameters are updated in the store state. 194 | 195 | - **fans-router** 196 | https://github.com/fansapp/fans-router 197 | An opinionated react-redux router library. 198 | 199 | - **redux-hist** 200 | https://github.com/minodisk/redux-hist 201 | This library provides methods for manipulating history and reflecting the state of history on store along Redux data flow. 202 | 203 | - **redux-arena** 204 | https://github.com/hapood/redux-arena 205 | Redux-arena is a tool for modularizing redux/redux-saga with react components. Scope redux/redux-saga within bundle, and auto clear redux/redux-saga in bundle after react component unmounted based on URL switches. 206 | 207 | - **chronik** 208 | https://github.com/honmanyau/chronik 209 | A simple, no-context React-Redux client-side router based on the History Web API. 210 | 211 | - **Conduit** 212 | https://github.com/DensityCo/conduit 213 | A small router for redux-backed applications. 214 | 215 | - **routedux** 216 | https://github.com/cjdev/routedux 217 | A router that maps urls to redux actions and vice-versa 218 | 219 | - **redux-saga-first-router** 220 | https://github.com/ChaosGroup/redux-saga-first-router 221 | "Saga First" Router for React/Redux/Saga Projects, inspired by the best parts of redux-saga-router and redux-first-router. 222 | 223 | - **react-redux-router** 224 | https://github.com/micahblu/react-redux-router 225 | An incredibly simple and easy to use router for react redux apps. All that is required is a routes config object to be set, then import the Router component and routerReducer and pass the store and routes to the Router component. 226 | 227 | - **air-traffic-control** 228 | https://github.com/airplane-mode/air-traffic-control 229 | Air Traffic Control maps route changes in your app to action creators in redux. Dead simple Redux routing, the way it should work. 230 | 231 | - **redux-location-middleware** 232 | https://github.com/diosmosis/redux-location-middleware 233 | Simple middleware and reducer that makes the URL accessible & updateable via redux state. 234 | 235 | - **redux-router-lite** 236 | https://github.com/alessioscalici/redux-router-lite 237 | A pure Redux-based, lightweight router with no React library dependencies. 238 | -------------------------------------------------------------------------------- /side-effects-functions.md: -------------------------------------------------------------------------------- 1 | ### Side Effects - Functions 2 | 3 | - **redux-thunk** 4 | https://github.com/gaearon/redux-thunk 5 | The simplest possible side effects approach: dispatch functions instead of objects, which then get access to `dispatch` and `getState`. (Variations on the concept listed on the [Middleware](middleware.md) page.) 6 | 7 | - **redux-action-side-effects** 8 | https://github.com/jonnyreeves/redux-action-side-effects 9 | Trigger side effects after actions have been reduced. 10 | 11 | - **redux-thunk-effects** 12 | https://github.com/shakacode/redux-thunk-effects 13 | Thunk-like handling with additions. 14 | 15 | - **redux-thunktions** 16 | https://github.com/ohjames/redux-thunktions 17 | An FSA compatible redux thunk middleware ideal for use with redux-actions and/or redux-promise-middleware. 18 | 19 | - **redux-effects** 20 | https://github.com/redux-effects/redux-effects 21 | Virtual DOM for effects and impurities. You write pure functions, redux-effects handles the rest. 22 | 23 | - **redux-async-action** 24 | https://github.com/kevhuang/redux-async-action 25 | Dispatches FSA actions for asynchronous Redux actions 26 | 27 | - **redux-thunk-status** 28 | https://github.com/dieseljobs/redux-thunk-status 29 | Simple redux async action status management 30 | 31 | - **redux-thunk-subscribe** 32 | https://github.com/AugurProject/redux-thunk-subscribe 33 | Similar to Redux Thunk, but with subscribe available to thunks (in addition to dispatch and getState) so they can add listeners to the store on-the-fly. 34 | 35 | - **redux-optimistic-thunk** 36 | https://github.com/ecomfe/redux-optimistic-thunk 37 | redux-optimistic-thunk is a redux-thunk like middleware with optimistic UI supported. 38 | 39 | - **redux-managed-thunk** 40 | https://github.com/ecomfe/redux-managed-thunk 41 | A redux-thunk compatible middleware with managed feature to help write more controllable and reusable thunks 42 | 43 | - **redux-thunk-state-adapter** 44 | https://github.com/bspaulding/redux-thunk-state-adapter 45 | A utility to provide a facade of getState to an externally owned thunk. This is useful when you are sharing action creators which compose selectors that assume a certain state shape. 46 | 47 | - **redux-ready-wrapper** 48 | https://github.com/borisding/redux-ready-wrapper 49 | A variation of redux-thunk that dispatches a READY_ACTION before your actual action, and always returns a promise for chaining 50 | 51 | - **thunk-kickoff** 52 | https://github.com/chrisgervang/thunk-kickoff 53 | Get promises out the door and into your store! Thunk Kickoff wraps async actions with request status (success, pending, fail), and provides essential request lifecycle functions. It builds on top of redux-thunk. 54 | 55 | - **selector-action** 56 | https://github.com/sibnerian/selector-action 57 | A small abstraction over redux-thunk which allows you to pass in selectors and an action creator function that receives the extracted data, similar to how Reselect's `createSelector` API works. 58 | 59 | - **redux-thunks** 60 | https://github.com/w33ble/redux-thunks 61 | Simple thunk creator for redux. This is meant to smooth over the use of redux-thunk mixed with the use of redux-actions. 62 | 63 | - **redux-serial-effects** 64 | https://github.com/wix/redux-serial-effects 65 | A middleware library for managing side-effects based on state changes, following an actual vs. expected philosophy, and supporting composability. 66 | 67 | - **redux-thunk-ajax** 68 | https://github.com/mividtim/redux-thunk-ajax 69 | Make JSON REST AJAX requests with redux-thunk 70 | 71 | - **redux-thunk-catch** 72 | https://github.com/shoaibkalsekar/redux-thunk-catch 73 | A redux thunk alternative with error handling support. 74 | 75 | - **redux-thunkx** 76 | https://github.com/Bhoos/redux-thunkx 77 | A redux thunk middleware with extendable arguments. It works exactly like redux-thunk with an additional feature of extendable arguments. 78 | 79 | - **redux-thunkx-timer** 80 | https://github.com/Bhoos/redux-thunkx-timer 81 | A controlled timer for running future actions 82 | 83 | - **redux-thunk-timeout** 84 | https://github.com/Bhoos/redux-thunk-timeout 85 | A redux-thunk based timeout manager for redux actions 86 | 87 | - **redux-call-effect** 88 | https://github.com/tomasz-sodzawiczny/redux-call-effect 89 | A declarative way to call action creators. 90 | 91 | - **redux-super-thunk** 92 | https://github.com/Atomic-Reactor/redux-super-thunk 93 | Thunk middleware for Redux that adds the store as an argument. 94 | 95 | 96 | #### Redux-Effects extensions 97 | 98 | - **bind-effect** 99 | https://github.com/redux-effects/bind-effect 100 | Bind to the result of an effectful action 101 | 102 | - **declarative-promise** 103 | https://github.com/redux-effects/declarative-promise 104 | Produce declarative specifications of your promise chains. Designed to be used in conjunction with redux-effects 105 | 106 | - **redux-effects-events** 107 | https://github.com/redux-effects/redux-effects-events 108 | Provides access to event listeners on window and document 109 | 110 | - **redux-effects-localstorage** 111 | https://github.com/redux-effects/redux-effects-localstorage 112 | Redux effects driver for localStorage 113 | 114 | - **redux-effects-random** 115 | https://github.com/redux-effects/redux-effects-random 116 | Random number generator for redux-effects 117 | 118 | - **redux-effects-cookie** 119 | https://github.com/redux-effects/redux-effects-cookie 120 | Access and manipulate cookies in redux-effects middleware in an isomorphic way. 121 | 122 | - **redux-effects-timeout** 123 | https://github.com/redux-effects/redux-effects-timeout 124 | Driver and set of action creators for timing related effects in redux-effects. 125 | 126 | - **redux-effects-fetch** 127 | https://github.com/redux-effects/redux-effects-fetch 128 | Declarative data fetching for redux 129 | 130 | - **redux-effects-fetch-fixture** 131 | https://github.com/team-boris/redux-effects-fetch-fixture 132 | An extension for redux-effects-fetch, which lets you define fixtures for your FETCH actions. Now you are able to develope completely without any REST backend. 133 | 134 | - **redux-effects-credentials** 135 | https://github.com/redux-effects/redux-effects-credentials 136 | Add credentials to fetch requests when conditions are met 137 | 138 | - **redux-effects-location** 139 | https://github.com/redux-effects/redux-effects-location 140 | redux-effects middleware for dealing with location/url 141 | 142 | - **redux-flo** 143 | https://github.com/redux-effects/redux-flo 144 | Redux style control flow middleware - inspired by haskel's free monad approach to io and co. 145 | 146 | - **redux-effects-http-cache** 147 | https://github.com/leesiongchan/redux-effects-http-cache 148 | Cache HTTP requests to fetch requests to prevent duplicated requests. 149 | 150 | - **redux-effects-fetch-fixture** 151 | https://github.com/gutefrage/redux-effects-fetch-fixture 152 | An extension for redux-effects-fetch, which lets you define fixtures for your FETCH actions. Now you are able to develop completely without any REST backend. 153 | 154 | - **redux-effects-steps** 155 | https://github.com/recruit-tech/redux-effects-steps 156 | Another version of redux-effects handling error action properly. 157 | 158 | - **redux-effects-socket.io** 159 | https://github.com/recruit-tech/redux-effects-socket-io 160 | socket.io bindings for redux-effects family -------------------------------------------------------------------------------- /side-effects-generators.md: -------------------------------------------------------------------------------- 1 | ### Side Effects - Generators 2 | 3 | 4 | - **redux-saga** 5 | https://github.com/redux-saga/redux-saga 6 | Generator-based side effects approach. Create "sagas", which act like background threads or daemons that can listen for actions and dispatch objects describing side effects. 7 | 8 | - **redux-ship** 9 | https://github.com/clarus/redux-ship 10 | Redux Ship is a Redux middleware for side effects which focuses on: composition: you can duplicate and reuse sub-stores, as you would do with React components; typing: you can type check your code with 100% coverage in Flow; testing: you can run unit tests of your side effects, by taking snapshots of their execution traces. 11 | 12 | - **redux-side-effects** 13 | https://github.com/salsita/redux-side-effects 14 | Redux toolset for keeping all the side effects inside your reducers while maintaining their purity, using generators. 15 | 16 | - **redux-yield-effect** 17 | https://github.com/wzrdzl/redux-yield-effect 18 | Declarative side effects for redux with generators 19 | 20 | - **Redux Rungen** 21 | https://github.com/youknowriad/redux-rungen 22 | Generator middleware for Redux (Based on rungen). Similar to redux-saga, but with some simplifications. 23 | 24 | - **redux-task** 25 | https://github.com/sskyy/redux-task 26 | A Side Effects enhancer for redux. The idea is simple: By given an asynchronous task(such as submitting data to server) a name, redux-task will create and handle the task state for you automatically. Then you can retrieve the state with the task name in your component easily. No need to create store state like isSubmitting or submitFailed and manully change them any more. 27 | 28 | - **redux-fork** 29 | https://github.com/floxjs/fork 30 | Non blocking async call effects. 31 | 32 | - **reelm** 33 | https://github.com/tihonove/reelm 34 | Awesome effect management library for redux 35 | 36 | - **redux-typed-saga** 37 | https://github.com/goshakkk/redux-typed-saga 38 | Redux-typed-saga is an alternative, well-typed take on the awesome redux-saga. The inspiration for typing side effects came from Redux Ship. However, Redux Ship has a totally different paradigm. This experimental project aims to rethink redux-saga with types as first-class citizens. 39 | 40 | - **corrie** 41 | https://github.com/alex-shnayder/corrie 42 | Embrace the power of coroutines to restrain side effects 43 | 44 | - **edge-effects** 45 | https://github.com/eiriklv/edge-effects 46 | Pluggable runtime effects engine (think redux-saga, except entirely pluggable) 47 | 48 | - **redux-fibers** 49 | https://github.com/elierotenberg/redux-fibers 50 | Managed async coroutines/fibers for Redux 51 | 52 | - **effects-as-data-redux** 53 | https://github.com/orourkedd/effects-as-data-redux 54 | Connects Redux and the author's "effects-as-data" library for declarative side effects. 55 | 56 | - **redux-iterate** 57 | https://github.com/doasync/redux-iterate 58 | Use (async) generators as action creators to yield actions. This middleware will handle dispatched iterators ('nextable' objects). 59 | 60 | - **redux-thunk-generators** 61 | https://github.com/doasync/redux-thunk-generators 62 | Thunk middleware for Redux supporting generators 63 | 64 | 65 | #### Redux-Saga extensions 66 | 67 | - **react-redux-saga** 68 | https://github.com/threepointone/react-redux-saga 69 | React bindings for redux-saga, allowing you to dynamically start sagas by mounting them as React components 70 | 71 | - **redux-saga-debounce-effect** 72 | https://github.com/madewithlove/redux-saga-debounce-effect 73 | A small debounce effect for redux-saga 74 | 75 | - **redux-saga-combine-latest** 76 | https://github.com/jhewlett/redux-saga-combine-latest 77 | Wait for several action types to be dispatched before handling them 78 | 79 | - **redux-saga-helpers** 80 | https://github.com/sebinsua/redux-saga-helpers 81 | Error-handling for redux-saga. This library provides a selection of small utilities to better handle sagas. 82 | 83 | - **redux-saga-sugar** 84 | https://github.com/jasonHzq/redux-saga-sugar 85 | Utilities for redux-saga: polling, fetching, and more. 86 | 87 | - **eslint-plugin-redux-saga** 88 | https://github.com/pke/eslint-plugin-redux-saga 89 | ESLint rules for redux-saga. 90 | 91 | - **redux-saga-process** 92 | https://github.com/Dash-OS/redux-saga-process 93 | Redux Saga Process (RSP) introduces an opinionated pattern for building modular, clean, and powerful redux-sagas by running them within ES6 classes and providing them with an encapsulated, simple, and powerful API. 94 | 95 | - **redux-saga-kit** 96 | https://github.com/wix-private/redux-saga-kit 97 | Utilities to help create and manage sagas. 98 | 99 | - **redux-saga-watch-actions** 100 | https://github.com/heygrady/redux-saga-watch-actions 101 | Helper methods for managing sagas that respond to actions. Similar in style to redux-actions. 102 | 103 | - **redux-saga-hoc** 104 | https://github.com/hajjiTarik/redux-saga-hoc 105 | A react HOC that can be plugged into react components and the saga middleware saga. It allows adding, starting, and stopping saga functions within a react component. 106 | 107 | - **redux-belt** 108 | https://github.com/store2be/redux-belt 109 | Opinionated helpers for Redux and Redux-Saga, including action creators and saga triggering 110 | 111 | - **redux-saga-utils** 112 | https://github.com/DmitryFillo/redux-saga-utils 113 | High level utils for redux-saga. These utils are based on the native redux-saga effects. 114 | 115 | - **redux-saga-api-call** 116 | https://github.com/goncy/redux-saga-api-call 117 | A simple method to simplify api calls, instead of calling the api and catch the response and error to dispatch the success and failure action, this call will do that for you. 118 | 119 | - **redux-saga-request** 120 | https://github.com/DylanVann/redux-saga-request 121 | Helper for running async functions and dispatching actions in redux saga. 122 | 123 | - **saga-monitor** 124 | https://github.com/clarketm/saga-monitor 125 | Simple, elegant, and configurable redux-saga monitor 126 | 127 | - **action-sagas** 128 | https://github.com/manaflair/action-sagas 129 | Add extra capabilities to your action creators by allowing them to dispatch sagas 130 | 131 | - **redux-saga-routines** 132 | https://github.com/afitiskin/redux-saga-routines 133 | A smart action creator for Redux Saga. Useful for any kind of async actions like fetching data. Also fully compatible with Redux Form. Reworked idea of redux-saga-actions 134 | 135 | - **redux-saga-thunk** 136 | https://github.com/diegohaz/redux-saga-thunk 137 | Dispatching an action handled by redux-saga returns promise 138 | 139 | - **redux-saga-rn-alert** 140 | https://github.com/itinance/redux-saga-rn-alert 141 | Alert.alert()-Support for side effects with redux-saga in react-native-apps 142 | 143 | - **redux-saga-location** 144 | https://github.com/itinance/redux-saga-location 145 | Helps to fetch geo-location within a saga (or any other generator function) and put the result into the redux-store. 146 | 147 | - **saga-task-manager** 148 | https://github.com/Dash-OS/saga-task-manager 149 | A Task Manager to help manage forked tasks from redux-saga. Tasks have a "category" and "id" which is used to identify and ensure we don't run more than one of any given task. 150 | 151 | - **SagaObservable** 152 | https://github.com/Dash-OS/saga-observable 153 | Abstracts the PromiseQueue lib to add the redux-saga cancellation logic on top. This allows us to easily wait for future actions / events in our sagas. 154 | 155 | - **saga-geolocation-observer** 156 | https://github.com/Dash-OS/saga-geolocation-observer 157 | Use saga-observables to provide a simple way to use the HTML5 Geolocation API with redux-saga 158 | 159 | - **redux-saga-rest** 160 | https://github.com/zach-waggoner/redux-saga-rest 161 | A thin wrapper around the Fetch API that integrates with redux-saga and supports request/response middleware. 162 | 163 | - **redux-saga-compose** 164 | https://github.com/sdd/redux-saga-compose 165 | Small utility for redux-saga to allow composing of middleware sagas, in the style of koa-compose. This module is intended for use when redux-saga is used in order to orchestrate a very complex data pipeline. 166 | 167 | - **resaga** 168 | https://github.com/QuanDhz/resaga 169 | A reusable Reducer and Saga HOC library. Resaga helps handle fetching data and dispatching actions when the data is fetched. 170 | 171 | - **react-redux-toolbox** 172 | https://github.com/bamlab/react-redux-toolbox 173 | Set of utils for React and Redux development. Saga decorators to handle loading status and API exceptions, plus a component and reducer for loading status. 174 | 175 | - **redux-saga-api** 176 | https://github.com/shengnian/redux-saga-api 177 | A REST style API fetch for redux-saga 178 | 179 | - **redux-saga-timeout** 180 | https://github.com/itinance/redux-saga-timeout 181 | setTimeout-Support within redux-saga 182 | 183 | - **redux-saga-api-call-routines** 184 | https://github.com/alvelig/redux-saga-api-call-routines 185 | Adds authentication header to any "*_REQUEST" action, and refreshes tokens if a 403 error is returned. 186 | 187 | - **recompose-saga** 188 | https://github.com/robinpowered/recompose-saga 189 | A recompose-like library for redux-saga 190 | 191 | - **reduxSagaOneLiners** 192 | https://github.com/kjr247/reduxSagaOneLiners 193 | Reusable generic sagas for making CRUD API calls 194 | 195 | - **redux-saga-queue** 196 | https://github.com/gleb-smagliy/redux-saga-queue 197 | High level effect to handle actions sequentially 198 | 199 | - **redux-saga-catch** 200 | https://github.com/cyrilluce/redux-saga-catch 201 | Helpers for redux-saga that auto-wrap sagas with try-catch to prevent a thrown error from stopping all sagas. 202 | 203 | - **redux-saga-requests** 204 | https://github.com/klis87/redux-saga-requests 205 | Redux-Saga addon to simplify handling of AJAX requests. It supports Axios and Fetch API, in the future additional integrations will be added, as they can be implemented in a plugin fashion. 206 | 207 | - **redux-saga-crud-service** 208 | https://github.com/eakarpov/redux-saga-crud-service 209 | Generates crud methods for services using saga middleware 210 | 211 | - **redux-saga-injector** 212 | https://github.com/isychev/redux-saga-injector 213 | A lightweight library for dynamic connections of sagas. The library provides service for quick and easy connection/disconnection of sagas anytime and anywhere in your code 214 | 215 | - **redux-saga-takeuntil** 216 | https://github.com/sh1989/redux-saga-takeuntil 217 | A utility that is useful if you wish to start a saga when a particular action is dispatched, and then cancel it when another action is dispatched. 218 | 219 | - **redux-saga-requests** 220 | https://github.com/klis87/redux-saga-requests 221 | Redux-Saga addon to simplify handling of AJAX requests. It supports Axios and Fetch API, but different integrations could be added, as they are implemented in a plugin fashion. 222 | 223 | - **redux-saga-auth** 224 | https://github.com/alvelig/redux-saga-auth 225 | Token auth flow handling using sagas 226 | 227 | - **redux-saga-fetch** 228 | https://github.com/dat2/redux-saga-fetch 229 | A saga that helps reduce HTTP duplication when writing redux-saga code. 230 | -------------------------------------------------------------------------------- /side-effects-observables.md: -------------------------------------------------------------------------------- 1 | ### Side Effects - Observables 2 | 3 | - **redux-observable** 4 | https://github.com/redux-observable/redux-observable 5 | RxJS 5-based middleware for Redux. Compose and cancel async actions and more. 6 | 7 | - **redux-logic** 8 | https://github.com/jeffbski/redux-logic 9 | Redux middleware for organizing business logic and action side effects. 10 | 11 | - **redux-saga-rxjs** 12 | https://github.com/salsita/redux-saga-rxjs 13 | RxJS implementation of the Saga pattern for Redux. 14 | 15 | - **redux-epic** 16 | https://github.com/BerkeleyTrue/redux-epic 17 | Redux-Epic is a library built to do complex/async side-effects and server side rendering(SSR) data pre-fetching using RxJS. 18 | 19 | - **react-redux-observable** 20 | https://github.com/redux-observable/react-redux-observable 21 | React helpers for redux-observable 22 | 23 | - **redux-observable-process-fetch** 24 | https://github.com/istarkov/redux-observable-process-fetch 25 | This middleware add caching, refetching, pre and post loading actions support for async data loading services like Observable.ajax or any other service with signature (...args: Array) => Observable. 26 | 27 | - **redux-stream** 28 | https://github.com/mcoetzee/redux-stream 29 | Use RxJS 5 to compose side effect streams. When composing your module's side effects, you have access to all state streams, which allows you to react to an independent module's state changes and produce side effects from it. 30 | 31 | - **redux-flourine** 32 | https://github.com/philpl/redux-fluorine 33 | Redux Fluorine is an enhancer to transform Observables truly into a first-class citizen in Redux. It enables you to directly dispatch observables containing actions, which is called an "agenda". 34 | 35 | - **redux-most** 36 | https://github.com/joshburgess/redux-most 37 | Most.js based middleware for Redux. Handle async actions with monadic streams & reactive programming. 38 | 39 | - **redux-cycle-middleware** 40 | https://github.com/lmatteis/redux-cycle-middleware 41 | Handle redux async actions using Cycle.js. 42 | 43 | - **redux-cycles** 44 | https://github.com/cyclejs-community/redux-cycles 45 | Bring functional reactive programming to Redux using Cycle.js 46 | 47 | - **redux-observable-utils** 48 | https://github.com/sckoh/redux-observable-utils 49 | Utilities to create redux-observable epics for fetching data 50 | 51 | - **redux-observable-stream-lite** 52 | https://github.com/pshev/redux-observable-stream-lite 53 | An alternative to redux-observable that uses the stream-lite library instead of RxJS 54 | 55 | - **redux-driver** 56 | https://github.com/NeoJRotary/redux-driver 57 | Event-Driven Middleware for Redux with RxJS and Socket.IO 58 | 59 | - **redux-rx-http** 60 | https://github.com/radiosilence/redux-rx-http 61 | Uses react-observable to provide a nice HTTP layer. 62 | 63 | - **redux-observable-crud** 64 | https://github.com/AlexHenkel/redux-observable-crud 65 | Provides a redux-observer CRUD functions generator, to have a nice DRY code on observer files. This will increase scalability and maintainability as there's only one file to maintain. 66 | 67 | - **xstream-redux-observable** 68 | https://github.com/adz5a/xstream-redux-observable 69 | Provides a factory function to create redux middleware, inspired by redux-observable, but using xtream instead of RxJS 70 | 71 | - **redux-observable-source** 72 | https://github.com/OlympusatDevelopment/redux-observable-source 73 | A Redux Middleware and data flow architecture for passing an Observable stream through an adapter to populate the branches on a state tree with data. How you get data to the observable is up to you, making it highly adaptable to your data sources, ie. websocket or ajax response as providers. 74 | 75 | - **redux-promise-observable** 76 | https://github.com/AyWa/redux-promise-observable 77 | A plugin for redux-observable. It allows to return a promise after an action as been dispatch, and resolve/reject the promise depending of others action. It can be use for redux-form 78 | 79 | - **redux-fetch-epic-builder** 80 | https://github.com/pcmnac/redux-fetch-epic-builder 81 | An utility lib to build "fetch actions" and generic EPICs handled by redux-observable. 82 | 83 | - **redux-observer-component** 84 | https://github.com/ferdaber/redux-observer-component 85 | A Redux store observer with a familiar React-like API. 86 | -------------------------------------------------------------------------------- /side-effects-other.md: -------------------------------------------------------------------------------- 1 | ### Side Effects - Other Approaches 2 | 3 | 4 | #### Reducer-Based Effects 5 | 6 | - **redux-loop** 7 | https://github.com/raisemarketplace/redux-loop 8 | Sequence your effects naturally and purely by returning them from your reducers. Also returns descriptive objects, which are executed later. 9 | 10 | - **redux-side-effect-reducers** 11 | https://github.com/matystl/redux-effect-reducers 12 | Library that enable returning of effects in reducers for redux library 13 | 14 | - **redux-side-effect** 15 | https://github.com/gregwebs/redux-side-effect 16 | Side Effect middleware for Redux. Lets you specify side effects in your reducing function that dispatch new actions. 17 | 18 | - **redux-elmish** 19 | https://github.com/minedeljkovic/redux-elmish 20 | The Elm Architecture in Redux, statically checked using flow. Attempts to be as close as possible to Elm Architecture in means of composition and static typing, and not lose Redux good parts (devtools) in the process. 21 | 22 | - **redux-funk** 23 | https://github.com/mheiber/redux-funk 24 | Enables you to declaratively specify effects in Redux reducers. You can use it to express in reducers not just what should happen, but also, what should happen next, while keeping reducers pure. Similar to Redux Loop, but the implementation is much simpler and shorter, and it enables you to program with reducers without having to worry about lifting effects. 25 | 26 | - **redux-funk-immutable** 27 | https://github.com/srikanthkyatham/redux-funk-immutable 28 | A tiny lib for creating Redux Funk that operate on Immutable JS maps 29 | 30 | - **redux-reducer-effects** 31 | https://github.com/cubik-oss/redux-reducer-effects 32 | Redux enhancer which adds support for managed effects to the reducer, allowing you to return side effects as data in your reducer function. 33 | 34 | - **side-effects** 35 | https://github.com/stewartml/side-effects 36 | Adds side-effects to redux, heavily inspired by redux-loop. I rewrote it because of the lack of documentation, the lack of typescript definitions, and the fact that testability has been dropped. The only reason why you'd want to return a side effect from your reducer rather than just making a side effect happen is so that you can test them. This library also decouples the effect result from the description of the effect. 37 | 38 | - **redux-reducer-side-effects** 39 | https://github.com/danrigsby/redux-reducer-side-effects 40 | Easy to follow side effect library for redux reducers. Primary goal of this library is to introduce safe side effects in a powerful way, but be simple to read, understand, and implement. 41 | 42 | - **redux-data-fx** 43 | https://github.com/matthieu-beteille/redux-data-fx 44 | Declarative Side Effects for Redux. Similar to redux-loop, mostly inspired by the elm architecture, with an implementation based on re-frame in cljs and its effectful handlers. 45 | 46 | - **redux-agent** 47 | https://github.com/bard/redux-agent 48 | Treat non-visual effects (such as network I/O) like visual effects (i.e. the user interface): describe them with state changes, render them via React. 49 | 50 | 51 | #### Other 52 | 53 | - **redux-remotes** 54 | https://github.com/rt2zz/redux-remotes 55 | Trigger side-effects (e.g. async actions) via dispatch. Vaguely similar to cerebral signals or elm side effects. 56 | 57 | - **redux-reactions** 58 | https://github.com/winstonewert/redux-reactions 59 | A reactions approach to side-effects in redux. 60 | 61 | - **redux-walk** 62 | https://github.com/xaviervia/redux-walk 63 | An async extension for Redux that keeps you functional (now deprecated) 64 | 65 | - **redux-process** 66 | https://github.com/maksimsco/redux-process 67 | Process manager for Redux to orchestrate complex/asynchronous operations in one place. 68 | 69 | - **redux-io** 70 | https://github.com/stoeffel/redux-io 71 | Wrap side-effects in an IO monad. 72 | 73 | - **redux-haiku** 74 | https://github.com/xaviervia/redux-haiku 75 | redux-haiku proposes is that any side-effect can be treated just like a DOM side-effect, that is, it can be done as the result of a state change. The state change can be identified by running a diff between the new and the old states on the segment of the state that the side-effect cares about, in the meanwhile reusing established patterns such as selectors, mapStateToProps, mapDispatchToProps, etc. 76 | 77 | - **redux-effex** 78 | https://github.com/brentvatne/redux-effex 79 | Spin off async functions to perform side effects 80 | 81 | - **redux-reactor** 82 | https://github.com/eiriklv/redux-reactor 83 | Redux middleware for handling side effects by reacting to dispatched actions 84 | 85 | - **refx** 86 | https://github.com/aduth/refx 87 | Redux middleware for triggering side effects. To perform side effects, you define effects as an object of action type keys whose values are functions which trigger additional effects. 88 | 89 | - **petux** 90 | https://github.com/tempname11/petux 91 | The Redux ecosystem still lacks a solution for side effects that (A) is easy to use, (B) is easy to reason about, (C) scales well. Petux is a humble attempt to solve this problem. It is meant to be used in real-world production applications of any complexity. 92 | 93 | - **redux-executor** 94 | https://github.com/piotr-oles/redux-executor 95 | Redux enhancer for handling side effects. 96 | 97 | - **redux-se** 98 | https://github.com/DJercic/redux-se 99 | Redux middleware that allows you to trigger side effects with redux actions. It's a library that meets thunks and sagas in the middle. Side effects are triggered by actions that flow through redux store, and complexity of your side-effects are up to you. 100 | 101 | - **redux-background** 102 | https://github.com/monvillalon/redux-background 103 | redux-background allows you to create background tasks on redux. This package is very similar to redux-thunk or redux-promise but adds several features, like statistics, progress and rescheduling. 104 | 105 | - **redux-free-flow** 106 | https://github.com/yiransheng/redux-free-flow 107 | Free Monad Action Creators for Redux. Lets you write pure, composable and versatile redux store interactions (both sync and async) 108 | 109 | - **reservice** 110 | https://github.com/zordius/reservice 111 | An isomorphic/universal asynchronous tasks solution for redux. 112 | 113 | - **redux-tx** 114 | https://github.com/majo44/redux-tx 115 | Transactions for Redux, using zone.js 116 | 117 | - **redux-heat** 118 | https://github.com/batata-frita/redux-heat 119 | Redux side-effects as a function of state. 120 | 121 | - **redux-saga-promise** 122 | https://github.com/Vlemert/redux-saga-promise 123 | Generator-less implementation of Redux-Saga 124 | 125 | - **redux-effects-promise** 126 | https://github.com/apoterenko/redux-effects-promise 127 | An implementation of declarative promises effects for redux. The solution is based on inversify library. 128 | 129 | - **redux-pixies** 130 | https://github.com/Airbitz/redux-pixies 131 | Pixies are little processes that run in the background, monitoring your Redux store and handling asynchronous side-effects. Pixies are a lot like React components, but instead of managing the DOM, pixies manage everything else. Pixies are state-based, rather than action-based. A pixie's job is to compare the state of the Redux store with the real world and fix anything that is out of sync. 132 | 133 | - **redux-serial-effects** 134 | https://github.com/wix/redux-serial-effects 135 | A middleware library for managing side-effects based on state changes, following an actual vs. expected philosophy, and supporting composability. 136 | 137 | - **stranded** 138 | https://github.com/downplay/stranded 139 | A new model for side effects in a React/Redux architecture, based on constructs called "strands" and "atoms". -------------------------------------------------------------------------------- /side-effects.md: -------------------------------------------------------------------------------- 1 | ### Side Effects 2 | 3 | For comparisons between side effect approaches, see [What is the right way to do asynchronous operations in Redux?](https://decembersoft.com/posts/what-is-the-right-way-to-do-asynchronous-operations-in-redux/). 4 | 5 | #### Widely Used Tools 6 | 7 | - **redux-thunk** 8 | https://github.com/gaearon/redux-thunk 9 | The simplest possible side effects approach: dispatch functions instead of objects, which then get access to `dispatch` and `getState`. (Variations on the concept listed on the [Middleware](middleware.md) page.) 10 | 11 | - **redux-saga** 12 | https://github.com/redux-saga/redux-saga 13 | Generator-based side effects approach. Create "sagas", which act like background threads or daemons that can listen for actions and dispatch objects describing side effects. 14 | 15 | - **redux-loop** 16 | https://github.com/raisemarketplace/redux-loop 17 | Sequence your effects naturally and purely by returning them from your reducers. Also returns descriptive objects, which are executed later. 18 | 19 | - **redux-observable** 20 | https://github.com/redux-observable/redux-observable 21 | RxJS 5-based middleware for Redux. Compose and cancel async actions and more. 22 | 23 | - **redux-logic** 24 | https://github.com/jeffbski/redux-logic 25 | Redux middleware for organizing business logic and action side effects. 26 | 27 | 28 | #### Side Effect Libraries By Approach 29 | 30 | - [Side Effects - Functions](side-effects-functions.md) 31 | - [Side Effects - Generators](side-effects-generators.md) 32 | - [Side Effects - Observables](side-effects-observables.md) 33 | - [Side Effects - Reducers/Other](side-effects-other.md) -------------------------------------------------------------------------------- /store-persistence.md: -------------------------------------------------------------------------------- 1 | ### Store Persistence 2 | 3 | 4 | #### Persistence Libraries 5 | 6 | - **redux-persist** 7 | https://github.com/rt2zz/redux-persist 8 | Persist and rehydrate a redux store. The core idea behind redux-persist is to provide performant persistence and rehydration methods. At the same time redux-persist is designed to minimize complexity by knowing as little about your application as possible. 9 | 10 | - **redux-localstorage** 11 | https://github.com/elgerlambert/redux-localstorage 12 | Store enhancer that syncs (a subset) of your Redux store state to localstorage. 13 | 14 | - **redux-offline** 15 | https://github.com/redux-offline/redux-offline 16 | Persistent Redux store for Reasonaboutable™? Offline-First applications, with first-class support for optimistic UI. Use with React, React Native, or as standalone state container for any web app. 17 | Note: the original "jevakallio" repo has become inactive, so the repo was forked to a "redux-offline" organization. 18 | 19 | - **redux-storage** 20 | https://github.com/react-stack/redux-storage 21 | Persistence layer for redux with flexible backends. Save and load the Redux state with ease. 22 | 23 | - **redux-pouchdb** 24 | https://github.com/vicentedealencar/redux-pouchdb 25 | Sync store state to pouchdb 26 | 27 | - **redux-owl** 28 | https://github.com/rt2zz/redux-owl 29 | Redux One Way Linking. This is a simple method for supporting offline sync. The basic concept is, try to execute the action, on failure add it to a retry queue. Every so often process the retry queue until success is achieved. 30 | 31 | - **redux-action-store** 32 | https://github.com/oakfang/redux-action-store 33 | Save and load actions to persist state 34 | 35 | - **redux-session-storage** 36 | https://github.com/conorhastings/redux-session-storage 37 | Redux middleware for recording redux actions for a particular session to session storage 38 | 39 | - **redux-persistent-state-snapshot** 40 | https://github.com/Marcoga/redux-persistent-state-snapshot 41 | Middleware to persist your state in a Redux app. 42 | 43 | - **redux-simple-localstorage** 44 | https://github.com/MoombaDS/redux-simple-localstorage 45 | Ridiculously simple implementation for serialising the entire Redux store to local storage and retrieving it on application restart. 46 | 47 | - **redux-smooth-storage** 48 | https://github.com/dsacramone/redux-smooth-storage 49 | Small program to store your react redux store or stores in local storage or session storage 50 | 51 | - **redux-state-archiver** 52 | https://github.com/schwers/redux-state-archiver 53 | A collection of React components for serializing your redux state. 54 | 55 | - **redux-async-initial-state** 56 | https://github.com/KELiON/redux-async-initial-state 57 | Redux middleware for async loading of initial app state. 58 | 59 | - **persistent-redux** 60 | https://github.com/explorigin/persistent-redux 61 | Persistent-Redux is a drop-in middleware that will save your Redux state and restore it on the next page load. Previously this tool focused on PouchDB but now it offers an adapter API to use any backend. 62 | 63 | - **redux-simple-storage-middleware** 64 | https://github.com/BartWaardenburg/redux-simple-storage-middleware 65 | Simple redux middleware which will store the current state tree in either session- or localstorage 66 | 67 | - **Redux-Session** 68 | https://github.com/HelpfulHuman/Redux-Session 69 | Redux middleware for automatic setting and hydration of state data in external storage. 70 | 71 | - **redux-eventstore** 72 | https://github.com/camjackson/redux-eventstore 73 | Redux middleware for reading and writing actions to Event Store. Meant for event-based persistence on the server. 74 | 75 | - **redux-gatorade** 76 | https://github.com/michael-iglesias/redux-gatorade 77 | Need to hydrate state from URL parameters? Redux-gatorade is a simple solution that allows you to hydrate different parts of your state tree from URL parameters. 78 | 79 | - **redux-simple-storage-middleware** 80 | https://github.com/BartWaardenburg/redux-simple-storage-middleware 81 | Simple redux middleware which will store the current state tree in either session- or localstorage. This helps creating an awesome developer experience when combined with hot reloading. 82 | 83 | - **redux-pouchdb-store-enhancer** 84 | https://github.com/jurassix/redux-pouchdb-store-enhancer 85 | Redux PouchDB Enhancer to store actions locally, sync with remote CouchDB, and time travel by applying remote actions locally and then compute distributed nextState. 86 | 87 | - **Redux-State-Sync** 88 | https://github.com/AOHUA/redux-state-sync 89 | A very light weight middleware to sync your redux state across browser tabs. 90 | 91 | - **record-redux** 92 | https://github.com/GA-MO/record-redux 93 | Record your action to local storage 94 | 95 | - **redux-react-session** 96 | https://github.com/bernabe9/redux-react-session 97 | Redux React Session provides an API that allows to manage sessions through the app, with authorization function for react-router and a persisted session. 98 | 99 | - **Redux Phoenix** 100 | https://github.com/brainhub-adam/redux-phoenix 101 | Restore redux state from previous sessions like a phoenix from ashes. 102 | 103 | - **session-store** 104 | https://github.com/zipdrug/session-store 105 | A redux store that manages a session lifecycle 106 | 107 | - **redux-state-save** 108 | https://github.com/bytefunc/redux-state-save 109 | A small library for saving and loading Redux state from file storage or localStorage 110 | 111 | - **redux-recovery** 112 | https://github.com/hajjiTarik/redux-recovery 113 | a redux-middleware that allows to persist, purge, rehydrate the store 114 | 115 | - **pouch-redux-middleware** 116 | https://github.com/pgte/pouch-redux-middleware 117 | Redux Middleware for syncing state and a PouchDB database. Propagates state changes into PouchDB. Propagates PouchDB changes into the state. 118 | 119 | - **redux-local-storage** 120 | https://github.com/mahaplatform/redux-local-storage 121 | Redux middleware for accessing local storage 122 | 123 | - **redux-localstorage-simple** 124 | https://github.com/kilkelly/redux-localstorage-simple 125 | Save and load Redux state to and from LocalStorage. Supports Immutable.js data structures. 126 | 127 | - **redux-localstore** 128 | https://github.com/arojunior/redux-localstore 129 | Subscribe Redux Store and replicate to localStorage, so users can refresh the page and keep the App state 130 | 131 | - **redux-persist-to-localstorage** 132 | https://github.com/purposeindustries/redux-persist-to-localstorage 133 | A dead-simple redux store enhancer for adding localStorage persistance 134 | 135 | - **redux-replay** 136 | https://github.com/kareemf/redux-replay 137 | Transport-agnostic Redux action persistence, retrieval, and replay. Designed to work with redux-logger's persistence mechanism. 138 | 139 | - **redux-browser-storage** 140 | https://github.com/planttheidea/redux-browser-storage 141 | Use redux to manage specific data saved in either localStorage or sessionStorage 142 | 143 | - **redux-pouchdb-sync-models** 144 | https://github.com/TobiasBales/redux-pouchdb-sync-models 145 | A middleware to sync models between redux state and a pouchdb with efficient storage and conflict resolution 146 | 147 | - **redux-cookies-middleware** 148 | https://github.com/grofers/redux-cookies-middleware 149 | redux-cookies-middleware is a Redux middleware which watches for changes in Redux state & stores them in browser cookie. 150 | 151 | - **redux-session-manager-middleware** 152 | https://github.com/ssilve1989/redux-session-manager-middleware 153 | Manage your client-side redux application state 154 | 155 | - **redux-session-manager** 156 | https://github.com/ssilve1989/redux-session-manager 157 | Redux Store Enhancer that serializes state to sessionStorage 158 | 159 | - **redux-dev-state-persist** 160 | https://github.com/abradley2/redux-dev-state-persist 161 | Redux Dev State Persist (RDSP) provides hot-reloading without having to use any sort of Browserify or Webpack plugin- and no mucking about with specific hot-reloading integrations API. Just persist your state! 162 | 163 | - **panmnesia** 164 | https://github.com/EternalDeiwos/panmnesia 165 | A command registry and redux-based aggregate store for a PouchDB-based event stream. 166 | 167 | - **redux-persistable** 168 | https://github.com/actra-development-oss/redux-persistable 169 | State persistance for redux stores supporting immutable.js, lazy reducers, versioned states, migrations and merged storage 170 | 171 | - **persist-reducer** 172 | https://github.com/nicocrm/persist-reducer 173 | Simple helper functions to persist a Redux reducer state to local storage 174 | 175 | - **redux-pouchdb-plus** 176 | https://github.com/medihack/redux-pouchdb-plus 177 | Synchronize Redux store with PouchDB to have a persistent store. 178 | 179 | - **redux-session-storage-gatorade** 180 | https://github.com/philopian/redux-session-storage-gatorade 181 | Use session storage to store the state of your redux store so if the user refreshes the browser your state will persist 182 | 183 | - **redux-state-save** 184 | https://github.com/bytefunc/redux-state-save 185 | Save and load the Redux state to file storage and localStorage 186 | 187 | - **redux-local-persist** 188 | https://github.com/Atomic-Reactor/redux-local-persist 189 | Redux middleware for selectively loading and saving state to localStorage. Redux Local Persist allows you to add a persist property to your Redux state that will specify how the defined values are saved in localStorage. 190 | 191 | 192 | #### Redux-Persist Addons 193 | 194 | - **redux-persist-crosstab** 195 | https://github.com/rt2zz/redux-persist-crosstab 196 | Add cross tab syncing to your redux app with 1 line. This tiny module listens to the window for redux-persist storage events. When an event occurs it will dispatch a rehydrate action. 197 | 198 | - **redux-persist-transform-compress** 199 | https://github.com/rt2zz/redux-persist-transform-compress 200 | Uses lz-string to compress state before storing. 201 | 202 | - **redux-persist-migrate** 203 | https://github.com/wildlifela/redux-persist-migrate 204 | Migrate redux state between versions 205 | 206 | - **redux-persist-transform-encrypt** 207 | https://github.com/maxdeviant/redux-persist-transform-encrypt 208 | Encrypt your Redux store. 209 | 210 | - **redux-persist-transform-expire** 211 | https://github.com/gabceb/redux-persist-transform-expire 212 | Add expiration to your persisted store 213 | 214 | - **redux-persist-migrate-semver** 215 | https://github.com/srtucker22/redux-persist-migrate-semver 216 | Migrate redux state between versions with redux-persist. 217 | 218 | - **redux-persist-transform-immutable** 219 | https://github.com/rt2zz/redux-persist-transform-immutable 220 | Add immutable sub-reducer support to redux-persist. 221 | 222 | - **redux-persist-immutable** 223 | https://github.com/rt2zz/redux-persist-immutable 224 | A wrapper around redux-persist that provides ImmutableJS support. 225 | 226 | - **redux-persist-immutable-state** 227 | https://github.com/rufman/redux-persist-immutable-state 228 | Implements stateIterator, stateGetter, stateSetter and stateReconciler for an ImmutableJS root state. 229 | 230 | - **redux-persist-transform-filter** 231 | https://github.com/edy/redux-persist-transform-filter 232 | Filter transformator for redux-persist 233 | 234 | - **redux-persist-transform-expire** 235 | https://github.com/gabceb/redux-persist-transform-expire 236 | Add expiration to your persisted store 237 | 238 | - **redux-persist-restful-storage** 239 | https://github.com/qwe852/redux-persist-restful-storage 240 | Restful storage for redux-persist 241 | 242 | - **redux-persist-cookie-storage** 243 | https://github.com/abersager/redux-persist-cookie-storage 244 | Redux Persist storage adapter for cookies 245 | 246 | - **redux-persist-node-storage** 247 | https://github.com/pellejacobs/redux-persist-node-storage 248 | Redux persist adaptor for Node localStorage 249 | 250 | - **redux-persist-state-manager** 251 | https://github.com/rt2zz/redux-persist-state-manager 252 | Replacement for autoRehydrate with state migrations, hard set rehydrated values, helpful log messages, and implemented as a higher order reducer 253 | 254 | - **redux-persist-memory-storage** 255 | https://github.com/modosc/redux-persist-memory-storage 256 | Redux Persist memory storage adapter. 257 | 258 | - **redux-persist-transform-passwords** 259 | https://github.com/CharlieHess/redux-persist-transform-passwords 260 | Store some parts of your state in the macOS Keychain, Credential Vault on Windows, or libsecret on Linux. Uses keytar. Adheres to the redux-persist transform API, but async transforms must be enabled. 261 | 262 | - **redux-persist-storage-node** 263 | https://github.com/odensc/redux-persist-storage-node 264 | redux-persist storage for Node.js/Electron. 265 | 266 | - **redux-persist-sensitive-storage** 267 | https://github.com/CodingZeal/redux-persist-sensitive-storage 268 | redux-persist storage engine for react-native-sensitive-info 269 | 270 | - **redux-persist-model** 271 | https://github.com/henrytao-me/redux-persist-model 272 | Utils for persisting model-related data 273 | 274 | - **redux-persist-electron-storage** 275 | https://github.com/psperber/redux-persist-electron-storage 276 | Redux persist adaptor for electron-store 277 | 278 | - **redux-persist-realm** 279 | https://github.com/Osedea/redux-persist-realm 280 | A Realmjs interface for redux-persist 281 | 282 | - **redux-persist-seamless-immutable** 283 | https://github.com/hilkeheremans/redux-persist-seamless-immutable 284 | Lets you use seamless-immutable on a per-reducer basis along with redux-persist v5. 285 | 286 | - **redux-persist-chrome-storage** 287 | https://github.com/robinmalburn/redux-persist-chrome-storage 288 | Storage adaptor for using Google Chrome's Storage API with redux-persist. 289 | 290 | - **redux-persist-check-version-transform** 291 | https://github.com/devx-agency/redux-persist-check-version-transform 292 | Redux persist with version information. 293 | 294 | 295 | #### Redux-Storage Addons 296 | 297 | - **redux-storage-engine-indexed-db** 298 | https://github.com/prateekbh/redux-storage-engine-indexed-db 299 | indexedDb engine for redux-storage 300 | 301 | - **redux-storage-engine-localstorage** 302 | https://github.com/react-stack/redux-storage-engine-localStorage 303 | window.localStorage engine for redux-storage 304 | 305 | - **redux-storage-engine-localStorageFakePromise** 306 | https://github.com/react-stack/redux-storage-engine-localStorageFakePromise 307 | Like redux-storage-engine-localstorage - but it does not require a environment with ES6 Promises. 308 | 309 | - **redux-storage-engine-reactNativeAsyncStorage** 310 | https://github.com/react-stack/redux-storage-engine-reactNativeAsyncStorage 311 | react-native/AsyncStorage based engine for redux-storage 312 | 313 | - **redux-storage-engine-remoteendpoint** 314 | https://github.com/bionexo/redux-storage-engine-remoteendpoint 315 | A remote endpoint storege engine for redux-storage 316 | 317 | - **redux-storage-merger-simple** 318 | https://github.com/react-stack/redux-storage-merger-simple 319 | Merge plain old JS structures (default) 320 | 321 | - **redux-storage-engine-immutablejs** 322 | https://github.com/react-stack/redux-storage-merger-immutablejs 323 | ImmutableJS compatible merger for redux-storage 324 | 325 | - **redux-storage-engine-jsurl** 326 | https://github.com/axe312ger/redux-storage-engine-jsurl 327 | Store your state as url hash via redux-storage and jsurl 328 | 329 | - **redux-storage-decorator-debounce** 330 | https://github.com/react-stack/redux-storage-decorator-debounce 331 | Delay and merge save opertations of redux-storage 332 | 333 | - **redux-storage-decorator-engines** 334 | https://github.com/allegro/redux-storage-decorator-engines 335 | Composing decorator for redux-storage to use different storage types like redux-storage-engine-localstorage or redux-storage-engine-sessionstorage including custom engines (i.e. to load information from cookies) in a single application. 336 | 337 | - **redux-storage-decorator-filter** 338 | https://github.com/michaelcontento/redux-storage-decorator-filter 339 | Filter decorator for redux-storage to only store a subset of the whole state tree. 340 | 341 | - **redux-storage-decorator-immutablejs** 342 | https://github.com/react-stack/redux-storage-decorator-immutablejs 343 | ImmutableJS decorator for redux-storage. Use this to convert the loaded state tree (or parts of it) into a ImmutableJS structure. 344 | 345 | - **redux-storage-decorator-migrate** 346 | https://github.com/mathieudutour/redux-storage-decorator-migrate 347 | Migrate decorator for redux-storage to version the storage with migration 348 | 349 | 350 | #### Redux-Localstorage Addons 351 | 352 | - **redux-localstorage-slicer** 353 | https://github.com/ngokevin/redux-localstorage-slicer 354 | Custom slicer for redux-localstorage that allows reducers to define their own persistence configuration. 355 | 356 | - **redux-localstorage-immutable** 357 | https://github.com/jakelazaroff/redux-localstorage-immutable 358 | Enhancer for redux-localstorage that allows you to persist an immutable store 359 | -------------------------------------------------------------------------------- /testing.md: -------------------------------------------------------------------------------- 1 | ### Testing 2 | 3 | 4 | #### General / Store 5 | - **redux-mock-store** 6 | https://github.com/arnaudbenard/redux-mock-store 7 | A mock store for your testing your redux async action creators and middleware 8 | 9 | - **redux-test** 10 | https://github.com/dariocravero/redux-test 11 | Create a redux-like store for testing 12 | 13 | - **Redux Test Recorder** 14 | https://github.com/conorhastings/redux-test-recorder 15 | Redux test recorder is a redux middleware + included component for automagically generating tests for your reducers based on the actions in your app. 16 | 17 | - **redux-ava** 18 | https://github.com/sotojuan/redux-ava 19 | Write AVA tests for redux pretty quickly 20 | 21 | - **redux-chaos** 22 | https://github.com/thomas-jeepe/redux-chaos 23 | Dead Simple Chaos/Property Testing with Redux 24 | This randomly chooses an action from an array 100,000 times and dispatches it to a store with a hook on each repetition. 25 | 26 | - **tape-redux** 27 | https://github.com/KaleoSoftware/tape-redux 28 | Write tape tests for redux blazingly fast. 29 | 30 | - **Redux-duck-test** 31 | https://github.com/sergiodxa/redux-duck-test 32 | Helper functions for testing redux ducks made with redux-duck library 33 | 34 | - **redux-test-store** 35 | https://github.com/davidkpiano/redux-test-store 36 | Test existing stores in Redux, the easy way 37 | 38 | - **expect-redux** 39 | https://github.com/rradczewski/expect-redux 40 | Assertions for testing a redux store and the actions dispatched to it using mocha and its Promise-Interface with expect Matchers 41 | 42 | - **Redux-Promise-Mock** 43 | https://github.com/ericmasiello/Redux-Promise-Mock 44 | Middleware meant to be used with Redux Promise that can be used to mock remote API calls with mock data. This middleware will automatically return mock data whenever the API promise-based request executed via redux-promise (https://github.com/acdlite/redux-promise) throws an error. 45 | 46 | - **redux-devtools-test-generator** 47 | https://github.com/zalmoxisus/redux-devtools-test-generator 48 | Generate tests right in Redux DevTools. 49 | 50 | - **redux-simple-test-recorder** 51 | https://github.com/e-xtrategy/redux-simple-test-recorder 52 | Simple Test Recorder for Redux. Record actions running through your store. 53 | 54 | - **redux-test-utils** 55 | https://github.com/knegusen/redux-test-utils 56 | Provides a mock store and utilities for checking dispatched actions. 57 | 58 | - **redux-jest** 59 | https://github.com/Roilan/redux-jest 60 | Write your Redux test with Jest. Port of redux-ava. 61 | 62 | - **redux-mocha-test-generators** 63 | https://github.com/jesalerno84/redux-mocha-test-generators 64 | Utilities for generating Mocha tests for Redux code 65 | 66 | - **redux-mock-provider** 67 | https://github.com/scalable-react/redux-mock-provider 68 | A helper utility that makes available a mock redux store and Provider for the purposes of testing connected components. 69 | 70 | - **redux-spec** 71 | https://github.com/frankrowe/redux-spec 72 | A library to validate a redux store against a json schema, and to generate sample data for testing purposes. 73 | 74 | - **fuuka** 75 | https://github.com/acrees/fuuka 76 | A mock store for testing redux applications 77 | 78 | - **jest-redux-snap** 79 | https://github.com/faceyspacey/jest-redux-snap 80 | Reactive test helpers for redux and jest. snap everything!!! 81 | 82 | - **react-redux-mock** 83 | https://github.com/khanghoang/react-redux-mock 84 | Mock the react-redux package for testing. 85 | 86 | - **mocha-redux-integration** 87 | https://github.com/tomvej/mocha-redux-integration 88 | Integration testing of redux stores with mocha 89 | 90 | - **chai-redux** 91 | https://github.com/ScaCap/chai-redux 92 | An extension plugin for the Chai assertion library for testing Redux stores. 93 | 94 | - **redux-test-belt** 95 | https://github.com/Workable/redux-test-belt 96 | Redux-test-belt is a JavaScript testing utility for Redux that makes it easier to assert, isolate, manipulate, and traverse your store's output. Redux-test-belt's API is meant to be flexible by mimicking / extending Redux's store functionality. Furthermore, Redux-test-belt is unopinionated regarding which test runner, assertion library or how your application is constructed. 97 | 98 | - **enzyme-redux** 99 | https://github.com/knegusen/enzyme-redux 100 | Test utils to simplify testing of containers in redux with enzyme. 101 | 102 | - **redux-tdd** 103 | https://github.com/lmatteis/redux-tdd 104 | Dot-chaining syntax for doing TDD with redux by composing unit tests as if they were integration tests 105 | 106 | - **redux-mock-store-middleware** 107 | https://github.com/rstudio/redux-mock-store-middleware 108 | Middleware that allows you to use a fully-working store in tests 109 | 110 | - **jest-react-redux** 111 | https://github.com/ImmoweltGroup/jest-react-redux 112 | Makes snapshot testing of react-redux (e.g. mapStateToProps or mapDispatchToProps) glue-code easy as pie. 113 | 114 | - **mocha-redux-integration** 115 | https://github.com/tomvej/mocha-redux-integration 116 | Integration testing of redux stores with mocha. The aim of this project is to offer a custom mocha UI to facilitate these tests. The test structure seems to be best represented by given-when-then syntax with given being initial state, when applied actions and then assertions on selector results. 117 | 118 | - **test-redux-store** 119 | https://github.com/rtragle/test-redux-store 120 | This library is made to take up where redux-mock-store left off. You can execute actions that run reducers and see the raw action objects as well as the result state. It works nice with middleware like redux-thunk as well. Unlike redux-mock-store, you can incorporate reducers as well. 121 | 122 | - **eslint-plugin-react-redux** 123 | https://github.com/DianaSuvorova/eslint-plugin-react-redux 124 | A set of ESLint rules for enforcing some opinionated best practices with React-Redux 125 | 126 | 127 | #### Reducers 128 | 129 | - **redux-promise-test** 130 | https://github.com/dariocravero/redux-promise-test 131 | Create redux-promise action results for your reducer tests. 132 | 133 | - **redux-test-reducer** 134 | https://github.com/amsardesai/redux-test-reducer 135 | redux-test-reducer is a simple module that allows you to cleanly test your Redux reducers. 136 | 137 | - **circumstance** 138 | https://github.com/dtinth/circumstance 139 | circumstance lets you test your state-updating functions (including Redux reducers) using the Given-When-Then concept. 140 | 141 | - **redux-testkit** 142 | https://github.com/wix/redux-testkit 143 | Complete and opinionated testkit for testing Redux projects (reducers, selectors, actions, thunks) 144 | 145 | - **TestReducer** 146 | https://github.com/DanielKag/TestReducer 147 | A simple yet smart testing framework for your Redux reducers. Helps you test your reducers using a Given/When/Then approach. 148 | 149 | 150 | 151 | #### Actions 152 | 153 | - **redux-asserts** 154 | https://github.com/mitodl/redux-asserts 155 | Functions to assert dispatched actions in redux 156 | 157 | - **redux-actions-assertions** 158 | https://github.com/redux-things/redux-actions-assertions 159 | https://github.com/redux-things/redux-actions-assertions-js 160 | Assertions (chai, expect, expect.js, should) for redux actions testing 161 | 162 | - **redux-action-logging** 163 | https://github.com/madebymany/redux-action-logging 164 | Redux testing utility middleware to log actions received by a store without mocking that store. 165 | 166 | - **redux-testkit** 167 | https://github.com/wix/redux-testkit 168 | Use this module to easily write unit tests for redux actions, including asynchronous actions using redux-thunk middleware. 169 | 170 | - **redux-asserts** 171 | https://github.com/mitodl/redux-asserts 172 | Functions to assert dispatched actions in redux. These functions are aimed at making integration testing with redux easier by abstracting away the need to manage and listen to the store's actions. 173 | 174 | - **redux-pre-thunk** 175 | https://github.com/holidaycheck/redux-pre-thunk 176 | Wrap redux-thunk for greater testability with middleware and actions 177 | 178 | - **redux-mock-store-await-actions** 179 | https://github.com/moxystudio/redux-mock-store-await-actions 180 | An addition to redux-mock-store that waits for specific actions to be dispatched or a timeout expires. 181 | 182 | - **mock-promise-thunk** 183 | https://github.com/kunal-mandalia/mock-promise-thunk 184 | Test your Redux thunk promises 185 | 186 | - **jest-mock-action-creators** 187 | https://github.com/asvetliakov/jest-mock-action-creators 188 | Simplify testing of redux dispatch() with action creators in React components 189 | 190 | 191 | #### Sagas and Side Effects 192 | 193 | - **redux-saga-test** 194 | https://github.com/stoeffel/redux-saga-test 195 | Utility for creating expressive redux-saga tests. 196 | 197 | - **redux-saga-test-plan** 198 | https://github.com/jfairbank/redux-saga-test-plan 199 | Powerful test helpers for redux-saga. 200 | 201 | - **redux-saga-test-runner** 202 | https://github.com/ksmithbaylor/redux-saga-test-runner 203 | Utilities to make testing sagas easier 204 | 205 | - **redux-saga-chai** 206 | https://github.com/R1ZZU/redux-saga-chai 207 | redux-saga-chai extends Chai and allows you to be more verbose while testing sagas 208 | 209 | - **redux-saga-tester** 210 | https://github.com/guybenron/redux-saga-tester 211 | Full redux environment testing helper for redux-saga 212 | 213 | - **redux-saga-testing** 214 | https://github.com/antoinejaussoin/redux-saga-testing 215 | A no-brainer way of testing your Sagas. 216 | 217 | - **redux-saga-tester** 218 | https://github.com/wix/redux-saga-tester 219 | This tester library provides a full redux environment to run your sagas in, taking a black-box approach to testing. You can dispatch actions, observe the state of the store at any time, retrieve a history of actions, and listen for specific actions to occur. 220 | 221 | - **redux-effects-test-jasmine** 222 | https://github.com/gutefrage/redux-effects-test-jasmine 223 | Helper methods to test redux-effect actions with jasmine. 224 | 225 | - **redux-observable-test-helpers** 226 | https://github.com/cmelion/redux-observable-test-helpers 227 | Unit test helpers for redux-observable 228 | 229 | - **redux-middleware-test-helper** 230 | https://github.com/goldylucks/redux-middleware-test-helper 231 | Easy way to test redux middlewares base functions 232 | 233 | - **test-saga** 234 | https://github.com/ayatkevich/test-saga 235 | A bunch of helpers to make redux-saga testing more powerful. 236 | 237 | - **redux-saga-mock** 238 | https://github.com/digitalidentitysa/redux-saga-mock 239 | Testing helper for redux-saga. 240 | 241 | - **Redux Saga Test Engine** 242 | https://github.com/DNAinfo/redux-saga-test-engine 243 | Collects the actions dispatched by your sagas for easy testing 244 | 245 | - **redux-logic-test** 246 | https://github.com/jeffbski/redux-logic-test 247 | redux-logic test utilities to facilitate the testing of logic 248 | 249 | - **expect-gen** 250 | https://github.com/jimbol/expect-gen 251 | An assertion / snapshot library for testing iterators and generators. It was designed for, and works particularly well with, redux-saga but can be used for anything that uses generators. 252 | 253 | - **saganario** 254 | https://github.com/vangelov/saganario 255 | Saganario tries to provide a compact and powerful way to unit test redux sagas. It can be used with any testing framework. 256 | 257 | - **better-redux-saga-tester** 258 | https://github.com/modosc/better-redux-saga-tester 259 | Better full redux environment testing helper for redux-saga (initially forked from redux-saga-tester) 260 | 261 | - **trampss-redux-saga-tester** 262 | https://github.com/Trampss/trampss-redux-saga-tester 263 | Test your sagas (redux-saga) with ease, compatible with Jest snapshots ! 264 | 265 | - **jest-saga** 266 | https://github.com/a-type/jest-saga 267 | A Jest expect extension to quickly test a redux-saga generator. 268 | 269 | - **proofread** 270 | https://github.com/streamich/proofread 271 | A convenience method to decrease boilerplate when testing you Redux sagas with Jest. 272 | 273 | - **redux-apollo-mock-store** 274 | https://github.com/jdachtera/redux-observable-apollo-mock 275 | Helper for tests to mock data in redux store and apollo-client 276 | 277 | - **redux-observable-test-helper** 278 | https://github.com/Jerry-Hong/redux-observable-test-helper 279 | Utilities to help unit test redux-observable epics. 280 | 281 | - **redux-observable-expect** 282 | https://github.com/srounce/redux-observable-expect 283 | Straightforward testing for redux-observable epics. 284 | 285 | - **redux-saga-integration-test** 286 | https://github.com/en-japan-air/redux-saga-integration-test 287 | Utilities to test sagas, reducers and selectors in integration 288 | 289 | - **k-redux-saga-tester** 290 | https://github.com/alakarteio/k-redux-saga-tester 291 | Test your sagas (redux-saga) with ease, compatible with Jest snapshots! 292 | 293 | - **redux-mock-saga** 294 | https://github.com/giespaepen/redux-mock-saga 295 | Elegant testing strategy to check what your sagas really do, i.e. testing the result of the side effects. 296 | 297 | - **proofread** 298 | https://github.com/streamich/proofread 299 | A convenience method to decrease boilerplate when testing you Redux sagas with Jest 300 | -------------------------------------------------------------------------------- /utilities.md: -------------------------------------------------------------------------------- 1 | ### Utilities 2 | 3 | **Related Topics** 4 | 5 | - [Entity/Collection Management](entity-collection-management.md) 6 | 7 | 8 | #### Data Manipulation and Normalization 9 | 10 | - **memoize-immutable** 11 | https://github.com/memoize-immutable/memoize-immutable 12 | An efficient memoizer for functions that only receive immutable arguments. Ideal for Redux and similar environments. Dependency free! 13 | 14 | - **normalizr** 15 | https://github.com/gaearon/normalizr 16 | Normalizes deeply nested JSON API responses according to a schema, producing flatter and unduplicated state. 17 | 18 | - **denormalizr** 19 | https://github.com/gpbl/denormalizr 20 | Denormalizr takes an entity normalized by normalizr, and returns its complete tree including all the referred entities. 21 | 22 | - **denormalizr-immutable** 23 | https://github.com/dehbmarques/denormalizr-immutable 24 | Denormalizer for normalizr using immutable data 25 | 26 | - **Redux Tree** 27 | https://github.com/stefanroex/redux-tree 28 | Denormalize your immutable Redux store 29 | 30 | - **salvage** 31 | https://github.com/xogeny/salvage 32 | A library for updating only those values that have changed in a Javascript value 33 | 34 | - **model-environment** 35 | https://github.com/tomascharad/model-environment 36 | Super lightweight environment that permits to define relations between objects when receiving data from normalized api's 37 | 38 | - **redux-variants** 39 | https://github.com/homezen/redux-variants 40 | Variants system for Redux (with optional React helpers) 41 | 42 | - **fetch-for-redux** 43 | https://github.com/gavacho/fetch-for-redux 44 | Fetches ajax responses suitable for dispatching in a redux action 45 | 46 | - **jsonapi-normalizer** 47 | https://github.com/stevenpetryk/jsonapi-normalizer 48 | Normalizes JSONAPI for use in Redux or similar systems. 49 | 50 | - **react-entity-getter** 51 | https://github.com/TheGnarCo/react-entity-getter 52 | A helper function to query redux state for entities 53 | 54 | - **remerger** 55 | https://github.com/frankwallis/remerger 56 | Creates recursively memoized deep merge functions for use with react-redux connect 57 | 58 | - **json-api-normalizer** 59 | https://github.com/yury-dymov/json-api-normalizer 60 | Utility to normalize JSON API data for redux applications 61 | 62 | - **redux-object** 63 | https://github.com/yury-dymov/redux-object 64 | Builds complex JS object from normalized redux store. Works best with json-api-normalizer. 65 | 66 | - **denormalize-with-state** 67 | https://github.com/ashleyw/denormalize-with-state 68 | denormalize-with-state takes data denormalized by denormalizr and merges in extra state. 69 | 70 | - **json-api-denormalizr** 71 | https://github.com/willsoto/json-api-denormalizr 72 | Denormalize JSON API responses for Redux applications 73 | 74 | - **normal-it** 75 | https://github.com/jdrouet/normal-it 76 | Normalizes and denormalizes JSON according to relational schema, inspired by Normalizr 77 | 78 | 79 | #### Selectors 80 | 81 | - **reselect** 82 | https://github.com/reactjs/reselect 83 | Simple “selector” library for Redux inspired by getters in NuclearJS. Can compute derived data efficiently using memoization and composition. 84 | 85 | - **reselect-change-memoize** 86 | https://github.com/kbrownlees/reselect-change-memoize 87 | A simple memoize function for reselect which performs a callback everytime the result changes. 88 | 89 | - **redux-threads** 90 | https://github.com/stonevanzuiden/redux-threads 91 | Helpers for reusable combinations of selectors, actions and reducers in redux. 92 | 93 | - **cape-select** 94 | https://github.com/cape-io/cape-select 95 | Reselect-inspired utility/selector functions 96 | 97 | - **reselect-map** 98 | https://github.com/HeyImAlex/reselect-map 99 | Selectors for mapping over collections 100 | 101 | - **reduxql** 102 | https://github.com/AppHubPlatform/reduxql 103 | Proof of concept for using GraphQL to select data from a Redux store. 104 | 105 | - **react-graphql-redux** 106 | https://github.com/youknowriad/react-graphql-redux 107 | This library allows you to use GraphQL to query your Redux store 108 | 109 | - **re-reselect** 110 | https://github.com/toomuchdesign/re-reselect 111 | Enhance Reselect selectors by wrapping createSelector function and returning a memoized collection of selectors indexed with the cache key returned by a custom resolver function. Useful to reduce selectors recalculation when the same selector is repeatedly called with one/few different arguments. 112 | 113 | - **selectorator** 114 | https://github.com/planttheidea/selectorator 115 | selectorator is an abstraction API for creating selectors via reselect with less boilerplate code. 116 | 117 | - **define-selectors** 118 | https://github.com/b6pzeusbc54tvhw5jgpyw8pwz2x6gs/define-selectors 119 | A utility to help with the ordering of selector definitions 120 | 121 | - **rememo** 122 | https://github.com/aduth/rememo 123 | Memoized selectors for Redux and other immutable object derivation. Differs from Reselect by encouraging you to consider the derivation first-and-foremost without requiring you to build up the individual dependencies ahead of time. 124 | 125 | - **reselectie** 126 | https://github.com/ralusek/reselectie 127 | Memoized selector library for any immutable data structure (such as a redux immutable store). This library serves as a smaller, faster alternative to reselect AND re-reselect. 128 | 129 | - **red-ux** 130 | https://github.com/codemeasandwich/red-ux 131 | Provides a genSelectState utility to improve selector caching behavior, and a shouldUpdate function for simple `shouldComponentUpdate` implementation 132 | 133 | - **combine-section-selectors** 134 | https://github.com/iofjuupasli/combine-section-selectors 135 | Combine selectors from state to one set of selectors. Useful with redux and combineReducer or combine-section-reducer 136 | 137 | - **combine-selectors-redux** 138 | https://github.com/tapayne88/combine-selectors-redux 139 | Utility function for combining selectors when working with redux. Much like combineReducers it helps for defining selector functions within the reducers. 140 | 141 | - **selectem** 142 | https://github.com/sibnerian/selectem 143 | Shorthand for react-redux’s mapStateToProps. Need some props? Just select 'em! 144 | 145 | - **redux-getters** 146 | https://github.com/fakundo/redux-getters 147 | Provides an additional layer of getters between the store and components. The getter returns data from the store if they are there, otherwise it returns stub and invokes fetch action. 148 | 149 | - **lenscrafter** 150 | https://github.com/Millsky/lenscrafter 151 | A micro library for immutable and safe state access 152 | 153 | - **re-select** 154 | https://github.com/bearyinnovative/re-select 155 | Memoized selector library, meant to improve reselect usage to be more resilient and concise. By using the new way to construct selectors, you should be able to write selectors that are easier to combine with. 156 | 157 | 158 | #### Functional Programming 159 | 160 | - **redux-transducers** 161 | https://github.com/acdlite/redux-transducers 162 | Transducer utilities for Redux. 163 | 164 | - **recompose** 165 | https://github.com/acdlite/recompose 166 | Recompose is a React utility belt for function components and higher-order components. Think of it like lodash for React. 167 | 168 | - **redux-rx** 169 | https://github.com/acdlite/redux-rx 170 | RxJS utilities for Redux. 171 | 172 | - **redux-bacon** 173 | https://github.com/aparticka/redux-bacon 174 | Utilities for attaching Bacon.js to Redux 175 | 176 | - **react-compose** 177 | https://github.com/UniversalAvenue/react-compose 178 | Compose React components with a functional api. 179 | 180 | - **Redux Consumer Toolkit** 181 | https://github.com/RocketPuppy/redux-consumer-toolkit 182 | Implements several functions that are useful for combining, composing, and altering reducers and selectors (consumers). Each of this functions returns a memoized consumer, similar to reselect, so data isn't re-computed unnecessarily. The inspiration for this library was fantasyland-redux, only instead of basing it off of the fantasyland specification it is based off of the static-land specification. 183 | 184 | - **compound** 185 | https://github.com/pdme/compound 186 | Like compose, but with rest params also being passed in. This is particularly useful in redux reducers, for example, when you want to apply multiple modifiers to the state, using the same action object. 187 | 188 | - **redux-fun** 189 | https://github.com/guillaumearm/redux-fun 190 | Utilities for composing and piping reducers, selectors, and middleware --------------------------------------------------------------------------------