/redux-observable

RxJS middleware for action side effects in Redux using "Epics"

Primary LanguageJavaScriptMIT LicenseMIT

Join the chat at https://gitter.im/redux-observable/redux-observable build status npm version npm downloads code climate

RxJS 5-based middleware for Redux. Compose and cancel async actions to create side effects and more.

https://redux-observable.js.org

Install

This has peer dependencies of rxjs@5.0.* and redux, which will have to be installed as well.

npm install --save redux-observable

IMPORTANT: redux-observable does not add any of the RxJS operators to the Observable.prototype so you will need to import the ones you use or import all of them in your entry file. Learn more.

Optional Adapters

Epics use RxJS v5 by default. You can use other stream libraries (other than RxJS v5) by using an Adapter.

You can write your own adapter too:

const adapter = {
  input: input$ => /* convert Observable to your preferred stream library */,
  output: output$ => /* convert your preferred stream back to an Observable */
};

See the existing adapters for examples. Keep in mind that while you still need RxJS v5 installed, redux-observable only pulls in the minimum amount of RxJS it needs internally--it doesn't import all of RxJS.

UMD

We publish a UMD build inside our npm package. You can use it via the unpkg CDN:

https://unpkg.com/redux-observable@latest/dist/redux-observable.min.js

Watch an introduction

Watch a video on redux-observable

JSBin Examples

To see redux-observable in action, here's a very simple JSBin to play around with:

Documentation

Discuss

Join the chat at https://gitter.im/redux-observable/redux-observable

Everyone is welcome on our Gitter channel!

Custom Emoji

Save this:

Add the redux-observable spinning logo to your Slack channel! Slack Instructions


:shipit: