Redux Libraries & Learning Material
      
    
    
      
    
    
      Redux is a state container for JavaScript apps.
    
    
    
    Contents
    
    
    Code Architecture
    
      Aims to improve the overall structure of the source code. Makes
        reasoning about the code easier.
    
    
      - 
        redux-schema -
        Automatic actions, reducers and validation for Redux.
      
 
      - 
        redux-tcomb -
        Immutable and type-checked state and actions for Redux.
      
 
      - 
        redux-action-tree
        - The Cerebral signals running with Redux.
      
 
      - 
        redux-elm - The Elm
        Architecture in JavaScript.
      
 
    
    Utilities
    
      - 
        redux-orm -
        Small, simple and immutable ORM to manage relational data in your Redux
        store.
      
 
      - 
        redux-api-middleware
        - Redux middleware for calling an API.
      
 
      - 
        redux-ignore -
        Higher-order reducer to ignore Redux actions.
      
 
      - 
        redux-modifiers
        - Collection of generic functions for writing Redux reducers to operate
        on various data structures.
      
 
      - 
        rereduce - Reducer
        library for Redux.
      
 
      - 
        redux-search
        - Redux bindings for client-side search.
      
 
      - 
        redux-logger
        - Logger middleware for Redux.
      
 
      - 
        redux-immutable -
        Redux-immutable is used to create an equivalent function of Redux
        combineReducers that works with Immutable.js state.
      
 
      - 
        reselect - Selector
        library for Redux.
      
 
      - 
        redux-requests -
        Manages in-flight requests with a Redux reducer to avoid issuing
        duplicate requests.
      
 
      - 
        redux-undo - Higher
        order reducer to add undo/redo functionality to Redux state containers.
      
 
      - 
        redux-bug-reporter
        - Bug reporter and bug playback tool for Redux.
      
 
      - 
        redux-transducers
        - Transducer utilities for Redux.
      
 
    
    Store Persistence
    
    Side Effects
    Side Effects / Asynchronous Actions
    
      - 
        redux-saga -
        Alternative side effect model for Redux apps.
      
 
      - 
        redux-promise-middleware
        - Redux middleware for resolving and rejecting promises with conditional
        optimistic updates.
      
 
      - 
        redux-effects
        - You write pure functions, redux-effects handles the rest.
      
 
      - 
        redux-thunk - Thunk
        middleware for Redux.
      
 
      - 
        redux-connect
        - Provides decorator for resolving async props in react-router,
        extremely useful for handling server-side rendering in React.
      
 
      - 
        redux-loop - Port
        of elm-effects and the Elm Architecture to Redux that allows you to
        sequence your effects naturally and purely by returning them from your
        reducers.
      
 
      - 
        redux-side-effects
        - Redux toolset for keeping all the side effects inside your reducers
        while maintaining their purity.
      
 
      - 
        redux-logic -
        Redux middleware for organizing business logic and action side effects.
      
 
      - 
        redux-observable
        - RxJS middleware for action side effects in Redux using “Epics”.
      
 
      - 
        redux-ship -
        Composable, testable and typable side effects.
      
 
    
    Code Style
    Aims to make parts of the source code easier to read/write.
    
      - 
        redux-act -
        Opinionated lib to create actions and reducers for Redux.
      
 
      - 
        redux-crud - Set of
        standard actions and reducers for Redux CRUD Applications.
      
 
    
    
    
    React Integration
    
    Routing
    
      - 
        redux-async-connect
        - It allows you to request async data, store them in Redux state and
        connect them to your React component.
      
 
      - 
        redux-tiny-router
        - Router made for Redux and made for universal apps. Stop using the
        router as a controller, it’s just state.
      
 
      - 
        redux-router -
        Redux bindings for React Router – keep your router state inside your
        Redux store.
      
 
      - 
        react-router-redux
        - Ruthlessly simple bindings to keep react-router and Redux in sync.
      
 
      - 
        ground-control
        - Scalable reducer management & powerful data fetching for React
        Router & Redux.
      
 
    
    
    
      - 
        redux-form - Higher
        Order Component using react-redux to keep form state in a Redux store.
      
 
      - 
        react-redux-form
        - Create forms easily in React with Redux.
      
 
    
    Component State
    
    Other Integrations
    Flux
    
    Backbone
    
      - 
        backbone-redux
        - Easy way to keep your backbone collections and Redux store in sync.
      
 
    
    Falcor
    
      - 
        redux-falcor -
        Connect your Redux front-end to your falcor back-end.
      
 
    
    RxJS
    
      - 
        redux-observable
        - RxJS middleware for action side effects in Redux using “Epics”.
      
 
      - 
        rx-redux -
        Reimplementation of Redux using RxJS.
      
 
      - 
        redux-rx - RxJS
        utilities for Redux.
      
 
      - 
        redurx - Redux'ish
        Functional State Management using RxJS.
      
 
    
    Electron
    
      - 
        redux-electron-store
        - Redux store enhancer that allows automatic synchronization between
        electron processes.
      
 
    
    Deku
    
    Other
    
      - 
        redux-rollbar-middleware
        - Redux middleware that wraps exceptions in actions and sends them to
        Rollbar with current state.
      
 
      - 
        kasia - React
        Redux toolset for the WordPress API.
      
 
    
    Boilerplate
    
      Boilerplates / Scaffolds / Starter Kits / Generators / Stack
        Ensembles
    
    
      - 
        redux-cli -
        Opinionated CLI for building Redux/React apps quicker.
      
 
      - 
        reactuate -
        React/Redux stack (not a boilerplate kit).
      
 
      - 
        react-chrome-extension-boilerplate
        - Boilerplate for Chrome Extension React.js project.
      
 
      - 
        universal-redux
        - Npm package that lets you jump right into coding React and Redux with
        universal (isomorphic) rendering. Only manage Express setups or Webpack
        configurations if you want to.
      
 
      - 
        generator-react-aspnet-boilerplate
        - Starting point for building isomorphic React applications with ASP.NET
        Core 1, leveraging existing techniques.
      
 
      - 
        generator-redux
        - CLI tools for Redux: next-gen functional Flux/React with devtools.
      
 
      - 
        generator-react-webpack-redux
        - React Webpack Generator including Redux support.
      
 
      - 
        socrates -
        Small (8kb), batteries-included Redux store to reduce boilerplate and
        promote good habits.
      
 
    
    Miscellaneous
    
    Learning Material
    
      - 
        
Redux’s concepts
        
          Redux official documentation does a
          great job at explaining Redux’s core principles.
        
       
      - 
        
Why immutable data structures
        
          The
          guide on performance
          of React’s official documentation explains well what immutable data
          structures are and why they play an important role.
        
       
      - 
        
Side Effects
        
          Redux Loop’s readme
          gives a good insight on Side Effects in the context of Redux.
        
       
    
    
      Reading the aforementioned material will get you a good start for writing
      apps with Redux. If you are curious for more, check out following
      resources.
    
    
      - 
        
Functional Programming - Basics
        
          This
          post
          goes over basic concepts of functional programming while building a
          YouTube instant search demo app.
        
       
      - 
        
Reactive Programming
        
          This
          introduction to Reactive Programming
          explains Reactive Programming with clarity.
        
       
      - 
        
Functional Programming - Going beyond
        
          Well written
          article
          that talks about interesting computer science concepts implemented in
          functional languages and how these apply to JavaScript.
        
       
      - 
        
Monads
        
          Curious about monads? Wikipedia gives a good
          overview on monads
          and
          this article
          explains monads in more details with graphics and simple examples.