└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Reactive Programming 2 | A repository for sharing all the resources available on Reactive Programming and Reactive Systems 3 | 4 | In order to contribute please follow these rules: 5 | 1. Fork the repository and open a PR 6 | 2. Please first check if the resource to add is already present in the right section 7 | 3. Add your resource at the end of a section 8 | 9 | Feel free to share this repository increasing the knowledge of Reactive Programming around the world! 10 | 11 | ## Frameworks/Libraries 12 | ### Javascript 13 | [Rx.JS 4](https://github.com/Reactive-Extensions/RxJS) 14 | [Rx.JS 5](https://github.com/ReactiveX/rxjs) 15 | [Cycle.js](https://cycle.js.org/) 16 | [MobX](https://mobx.js.org/) 17 | [Bacon.js](https://baconjs.github.io/) 18 | [Kefir.js](https://rpominov.github.io/kefir/) 19 | [XStream](http://staltz.com/xstream/) 20 | [Most](https://github.com/cujojs/most) 21 | [Highland](http://highlandjs.org/) 22 | [Cyclow](http://cyclow.js.org/) 23 | 24 | ### Node 25 | [Studio.js](https://github.com/ericholiveira/studio) 26 | 27 | ### Tools 28 | [Draw Cycle](https://github.com/bahmutov/draw-cycle) 29 | [Toy RxJS](https://github.com/staltz/toy-rx) 30 | [Rx Marbles](http://rxmarbles.com) 31 | [Rx Visualizer](https://rxviz.com) 32 | [Delorean](https://github.com/BrascoJS/delorean) 33 | 34 | ## Articles 35 | 36 | ### General 37 | [A General Theory of Reactivity](https://github.com/kriskowal/gtor) 38 | [The introduction to Reactive Programming you've been missing](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754) - A. Staltz 39 | [Learning Observable By Building Observable](https://medium.com/@benlesh/learning-observable-by-building-observable-d5da57405d87) - B. Lesh 40 | [What is Reactive Programming?](https://blog.redelastic.com/what-is-reactive-programming-bc9fa7f4a7fc) - K. Webber 41 | [A Journey into Reactive Streams](https://blog.redelastic.com/a-journey-into-reactive-streams-5ee2a9cd7e29https://blog.redelastic.com/a-journey-into-reactive-streams-5ee2a9cd7e29) - K. Webber 42 | [The Taxonomy of Reactive Programming](https://vsavkin.com/the-taxonomy-of-reactive-programming-d40e2e23dee4?gi=f336f111dfa0) - V. Savkin 43 | 44 | ### Rx.JS 45 | [ReactiveX](http://reactivex.io/) 46 | [ReactiveX tutorials](http://reactivex.io/tutorials.html) 47 | [Rx.JS 5 manual](http://reactivex.io/rxjs/manual/) 48 | [Testing RxJS Apps with Marble Diagrams](https://www.ericponto.com/blog/2017/01/08/rxjs-marble-diagram-tests-with-qunit/) - E. Ponto 49 | [Understanding the observable type](http://nick.balestra.ch/2016/Understanding-the-observable-type/) - N. Balestra 50 | [Understanding the observable type - pt 2](http://nick.balestra.ch/2016/creating-observables/) - N. Balestra 51 | [Understanding the observable type - pt 3](http://nick.balestra.ch/2016/composing-observables/) - N. Balestra 52 | [7 Operators to Get Started with RxJS](https://www.infoq.com/articles/rxjs-get-started-operators) - V. Tunru 53 | [Using Observables in real life](https://hackernoon.com/using-observables-to-make-our-app-work-with-barcode-scanners-e8a673fba625) - N. Carlo 54 | [Rx.JS 4 Book](https://xgrommx.github.io/rx-book/index.html) - D. Stoyanov 55 | [Being RxJS Subjects Savvy](https://medium.com/front-end-hacking/being-rxjs-subjects-savvy-4aec5c8da99e) - P. Singh 56 | [Rx — If the Operators could speak!](https://medium.freecodecamp.com/rx-if-the-operators-could-speak-58567c4618f1) - A. RizWan 57 | [Naive Infinite scroll in Reactive Programming using RxJS Observables](https://hackernoon.com/naive-infinite-scroll-in-reactive-programming-using-rxjs-observables-4a605d3146e8) - A. Sureshkumar 58 | [Becoming more reactive with RxJS flatMap and switchMap](https://medium.com/@w.dave.w/becoming-more-reactive-with-rxjs-flatmap-and-switchmap-ccd3fb7b67fa) - D. Wilson 59 | [What happens when you use RxJS in React?](https://hackernoon.com/what-happens-when-you-use-rxjs-in-react-11ae5163fc0a) - D. Kriskovic 60 | [RxJS switch, switchMap, and other map operations](https://medium.com/@ExplosionPills/rxjs-switch-switchmap-and-other-map-operations-e8ccdfb7e5a9) - A. Crites 61 | [Introducing Redux-Fusion: An alternative approach to React-Redux’s connect Method for RxJS Observable State & Components via Recompose](https://medium.com/@benipsen/introducing-redux-fusion-an-alternative-approach-to-react-reduxs-connect-method-for-rxjs-44248895b47d) - B. Ipsen 62 | [Functional Reactive Game Programming – RxJS Breakout](https://manu.ninja/functional-reactive-game-programming-rxjs-breakout) - M. Wieser 63 | [Making use of RxJS in Angular](https://auth0.com/blog/making-use-of-rxjs-angular) - W. Kwiatek 64 | [Taking advantage of observables in Angular](https://blog.thoughtram.io/angular/2016/01/06/taking-advantage-of-observables-in-angular2.html) - C. Burgdorf 65 | 66 | ### MobX 67 | [Becoming fully reactive: an in-depth explanation of MobX](https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254) - M. Weststrate 68 | [Write React-Native apps in 2017 style with MobX](https://blog.callstack.io/write-react-native-apps-in-2017-style-with-mobx-e2dffc209fcb) - W. Szafraniec 69 | [Redux or MobX: An attempt to dissolve the Confusion](https://www.robinwieruch.de/redux-mobx-confusion/?utm_content=buffer8e86e&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer) - R. Wieruch 70 | [The fundamental principles behind MobX](https://hackernoon.com/the-fundamental-principles-behind-mobx-7a725f71f3e8) - M. Weststrate 71 | [MobX 3 released: Unpeeling the onion](https://medium.com/@mweststrate/mobx-3-released-unpeeling-the-onion-ca877382f443) - M. Weststrate 72 | [Enjoying MobX, JSX and virtual-dom](https://medium.com/@botverse/enjoying-mobx-jsx-and-virtual-dom-621dcc2a2bd5) - A. Osa 73 | [Using Mobx and React to build an instant search](https://sergiotapia.me/using-mobx-and-react-to-build-an-instant-search-3eae1dd20cbd) - S. Tapia 74 | [React Navigation with MobX](https://medium.com/@pxue/react-navigation-with-mobx-2064fcdaa25b) - P. Xue 75 | [State Management & Hydration with MobX](https://medium.com/@foxhound87/state-management-hydration-with-mobx-we-must-react-ep-05-1922a72453c6) - C. Savino 76 | [Next.js meets Firebase and mobx | I](https://blog.mvp-space.com/next-js-meets-firebase-and-mobx-b3ae90d5b879) - Sakulstra 77 | [Next.js meets Firebase and mobx | II](https://blog.mvp-space.com/next-js-meets-firebase-and-mobx-ii-f89a6bbe7521) - Sakulstra 78 | [Next.js meets Firebase and mobx | III](https://blog.mvp-space.com/next-js-meets-firebase-and-mobx-iii-1da7cefa9d25) - Sakulstra 79 | [Next.js meets Firebase and mobx | IV](https://blog.mvp-space.com/next-js-meets-firebase-and-mobx-iv-903b3022d0b4) - Sakulstra 80 | [Why We Chose MobX Over Redux For Spectacle Editor](https://formidable.com/blog/2016/06/02/why-we-chose-mobx-over-redux-for-spectacle-editor/) - R. Gerstenberger 81 | [Building a React & MobX application with MVVM](https://medium.com/react-weekly/building-a-react-mobx-application-with-mvvm-ec0b3e3c8786) - M. Manzati 82 | [React form validation with MobX](https://medium.com/@KozhukharenkoN/react-form-validation-with-mobx-8ce00233ae27) - N. Kozhukharenko 83 | 84 | ### Cycle.JS 85 | [Node server with Rx and Cycle.js](https://glebbahmutov.com/blog/node-server-with-rx-and-cycle/) - G. Bahmutov 86 | [Using Cycle.js to view real-time satellite test data](http://futurice.com/blog/using-cycle-dot-js-to-view-real-time-satellite-test-data) - J. Van Brügge 87 | [Cold and hot callbacks](http://staltz.com/cold-and-hot-callbacks.html) - A. Staltz 88 | [Cycle.js, RxJS and cold observables](http://blog.thomasbelin.fr/p/cyclejs-rx-newbie-trap/) - T. Belin 89 | [Plug and Play All Your Observable Streams With Cycle.js](https://medium.com/@fkrautwald/plug-and-play-all-your-observable-streams-with-cycle-js-e543fc287872) - F. Krautwald 90 | 91 | ### SAM Architecture 92 | [SAM Pattern](http://sam.js.org/) 93 | [Why I No Longer Use MVC Frameworks](https://www.infoq.com/articles/no-more-mvc-frameworks) - J. Dubray 94 | 95 | 96 | ## Books 97 | [Mastering Reactive Javascript](https://www.packtpub.com/web-development/mastering-reactive-javascript) - E. Oliveira 98 | [Reactive Programming with JavaScript](https://www.packtpub.com/application-development/reactive-programming-javascript) - J. Hayward 99 | [Reactive Programming with RxJS](https://pragprog.com/book/smreactjs/reactive-programming-with-rxjs) - S. Mansilla 100 | [Reactive Programming with Angular and ngrx](http://www.apress.com/gb/book/9781484226193) - O. Farhi 101 | [Reactive Programming with Node.js](http://www.apress.com/gb/book/9781484221518) - F. Doglio 102 | [RxJS in Action](https://www.manning.com/books/rxjs-in-action) - P. Daniels and L. Atencio 103 | 104 | 105 | ## Videos 106 | ### General 107 | [Unidirectional data flow architectures](https://www.youtube.com/watch?v=1c6XiQsnh_U&t=1s) - A. Staltz 108 | [MVC to FRP](https://www.youtube.com/watch?v=-PCq4pXaDZw) - G. Bahmutov 109 | [Real-time Insights powered by Reactive Programming](https://www.youtube.com/watch?v=uODxUJ5Jwis) - J. Phelps 110 | [From Inactive to Reactive with ngrx](https://www.youtube.com/watch?v=cyaAhXHhxgk) - B. Roberts & M. Ryan 111 | 112 | ### Rx.JS 113 | [You will learn Rx.JS](https://www.youtube.com/watch?v=uQ1zhJHclvs) - A. Staltz 114 | [State of RxJS Jan '17](https://www.youtube.com/watch?v=7DE37wK0d9I) - B. Lesh 115 | [RxJS 5 Thinking Reactively](https://www.youtube.com/watch?v=3LKMwkuK0ZE) - B. Lesh 116 | [RxJS + Redux + React = Amazing!](https://www.youtube.com/watch?v=AslncyG8whg) - J. Phelps 117 | [Async Redux Actions With RxJS](https://www.youtube.com/watch?v=sF5-V-Szo0c) - B. Lesh 118 | [Angular 2 Http - Working with RxJS Observables](https://www.youtube.com/watch?v=BzmuEhBc3yk) - A. Towfeek 119 | [Reactive Angular 2](https://www.oreilly.com/learning/reactive-angular-2?utm_source=oreilly&utm_medium=newsite&utm_campaign=web-trends-on-our-radar-in-2017) - R. Wormald 120 | [RxJS: destroy the state machine!](https://www.youtube.com/watch?v=1abiJ9VBsDc) - S. Jerkku 121 | [RxJS 5 in-depth](https://www.youtube.com/watch?v=KTlay8cZdAk) - G. Sans 122 | [Reactive Angular 2 Applications with RxJS (ASL)](https://www.youtube.com/watch?v=YiDrd1GLpxc) - S. Muller 123 | 124 | ### MobX 125 | [React, transparent reactive programming and mutable data structures](https://youtu.be/FEwLwiizlk0) - M. Weststrate 126 | [Magic MobX become a reactive wizard in 30 minutes](https://www.youtube.com/watch?v=TfxfRkNCnmk) - M. Weststrate 127 | [MobX vs Redux: Comparing the Opposing Paradigms](https://www.youtube.com/watch?v=76FRrbY18Bs) - P. Kasireddy 128 | [Comparing Redux and MobX with two CTO's and React experts - state management using reactjs](https://www.youtube.com/watch?v=ZGVwMkrL2n0) - I. Zayats & P. Ramon 129 | 130 | ### Cycle.JS 131 | [Cycle.js and functional reactive user interfaces](https://www.youtube.com/watch?v=uNZnftSksYg) - A. Staltz 132 | [Brain as building block](https://www.youtube.com/watch?v=1ToJ7cxb1R8) - A. Staltz 133 | [CycleConf 2017 - all sessions](https://vimeo.com/album/4578937) 134 | 135 | ## Video Training Courses 136 | [Reactive JavaScript Programming](https://www.packtpub.com/application-development/reactive-javascript-programming-video) - S. Bhatnagar 137 | [Mastering Meteor: Powerful Reactive Applications with Full-Stack JavaScript](https://www.packtpub.com/web-development/mastering-meteor-powerful-reactive-applications-full-stack-javascript-video) - G. Mcknight 138 | [Manage Complex State in React Apps with MobX](https://egghead.io/courses/manage-complex-state-in-react-apps-with-mobx) - M. Westrate 139 | [Introduction to Reactive Programming](https://egghead.io/courses/introduction-to-reactive-programming) - A. Staltz 140 | [Step-by-Step Async JavaScript with RxJS](https://egghead.io/courses/step-by-step-async-javascript-with-rxjs) - J. Liquidist 141 | [Cycle.js fundamental](https://egghead.io/courses/cycle-js-fundamentals) - A. Staltz 142 | [RxJS Beyond the Basics: Operators in Depth](https://egghead.io/courses/rxjs-beyond-the-basics-operators-in-depth) - A. Staltz 143 | [RxJS Subjects and Multicasting Operators](https://egghead.io/courses/rxjs-subjects-and-multicasting-operators) - A. Staltz 144 | [Use Higher Order Observables in RxJS Effectively](https://egghead.io/courses/use-higher-order-observables-in-rxjs-effectively) - A. Staltz 145 | [RxJS Beyond the Basics: Creating Observables from scratch](https://egghead.io/courses/rxjs-beyond-the-basics-creating-observables-from-scratch) - A. Staltz 146 | 147 | 148 | ## Twitter accounts to follow 149 | [Ben Lesh](https://twitter.com/BenLesh) 150 | [André Staltz](https://twitter.com/andrestaltz) 151 | [Michel Weststrate](https://twitter.com/mweststrate) 152 | [Jay Phelps](https://twitter.com/_jayphelps) 153 | [Matt Podwysocki](https://twitter.com/mattpodwysocki) 154 | [Nick Balestra](https://twitter.com/nickbalestra) 155 | [Erich Oliveira](https://twitter.com/Oliveira_Erich) 156 | [Robin Wieruch](https://twitter.com/rwieruch) 157 | [Gerard Sans](https://twitter.com/gerardsans) 158 | [Christoffer Noring](https://twitter.com/chris_noring) 159 | [Denis Stoyanov](https://twitter.com/xgrommx) 160 | 161 | ## Communities 162 | [Rx.JS on Gitter](https://gitter.im/Reactive-Extensions/RxJS?utm_source=share-link&utm_medium=link&utm_campaign=share-link) 163 | [Cycle.js on Gitter](https://gitter.im/cyclejs/cyclejs?utm_source=share-link&utm_medium=link&utm_campaign=share-link) 164 | [MobX on Gitter](https://gitter.im/mobxjs/mobx?utm_source=share-link&utm_medium=link&utm_campaign=share-link) 165 | [SAM architecture on Gitter](https://gitter.im/jdubray/sam-architecture?utm_source=share-link&utm_medium=link&utm_campaign=share-link) 166 | --------------------------------------------------------------------------------