# Awesome RxJava

> Useful resources for working with RxJava

Inspired by the awesome list thing.

## Bindings

- RxAndroid - Android specific bindings for RxJava.
- RxBinding - RxJava binding APIs for Android UI widgets from the platform and support libraries.
- rx-preferences - Reactive `SharedPreferences` for Android.
- RxPermissions - Android M runtime permissions powered by RxJava.
- SQLBrite - A lightweight wrapper around SQLiteOpenHelper and ContentResolver which introduces reactive stream semantics to queries.
- Android-ReactiveLocation - Small library that wraps Google Play Service API in brilliant RxJava Observables reducing boilerplate to minimum.
- ReactiveNetwork - Android library listening network connection state and change of the WiFi signal strength with RxJava Observables.
- ReactiveSensors - Android library monitoring hardware sensors with RxJava Observables.
- RxPalette - RxJava bindings for the Palette library on Android.
- rxjava-jdbc - Efficient execution and functional composition of database calls using jdbc and RxJava Observables.
- rxjava-file - RxJava observables for files including NIO events.
- RxTuples - Simple tuples to use with RxJava.
- RxAnimationBinding - RxJava binding APIs for Android’s animations.

## Utilities

- RxJavaAsyncUtil - Async utilities for RxJava.
- RxJavaJoins - Joins operators for RxJava.
- RxJavaMath - Math operators for RxJava.
- RxJavaString - String and Byte operators for RxJava.
- RxJavaComputationExpressions - Computation expressions for RxJava.
- rxjava-extras - Utilities for use with RxJava.
- RxActions - Simple ActionN composition to use with RxJava.
- RxRelay - RxJava types that are both an Observable and an Action1.
- Frodo - Android Library for Logging RxJava Observables and Subscribers.
- RxPartialApplication - Simple partial application for FuncN and ActionN on RxJava.
- RxCurrying - Simple currying for FuncN and ActionN on RxJava.
- RxEither - Either type for RxJava.
- RxReplayingShare - An RxJava transformer which combines replay(1), publish(), and refCount() operators.
- RxFunctions - Advanced Function composition to use with RxJava.
- rxlint - An Android lint rule for RxJava code.
- RxComprehensions - Reduce boilerplate in RxJava by abstracting chained flatMaps, concatMaps and switchMaps.

## Testing

- assertj-rx - AssertJ assertions for RxJava Observables.
- rxpresso - Easy Espresso UI testing for Android applications using RxJava.

## Guides

- RxJava-Android-Samples - Learning RxJava for Android by example.
- Intro-To-RxJava - An extensive tutorial on RxJava.

## Articles

- Rx glitches aren’t actually a problem - Glitches are temporary inconsistencies emitted by Observables. André Staltz looks at why it’s not really a problem.
- RxJava’s repeatWhen and retryWhen, explained - `repeatWhen` and `retryWhen` are fairly baffling at first glance. Dan Lew explains the operators in depth.
- RxJava - The Problem with Subjects - Thomas Nield explains why `Subject` is not a panacea.

## Tools

- RxMarbles - Interactive diagrams of Rx Observables.

## Community

- Google Group
- StackOverflow
- `@RxJava` on Twitter
- `ReactiveX/RxJava` on Gitter
- GitHub Issues

## License

To the extent possible under law, Jokubas Dargis has waived all copyright and related or neighboring rights to this work.

rxjava.md Github