RxJava is a lightweight Java VM implementation of ReactiveX (Reactive Extensions). This is a library for the composition of asynchronous and event-based programs through observable sequences. It helps you write cleaner and simpler code by providing methods for solving problems quickly, and is easy to maintain and understand.
RxJava works by extending the observer pattern in order to support sequences of data/events. It also allows you to compose sequences together declaratively through added operators, all while abstracting away concerns like low-level threading, thread-safety, concurrent data structures and synchronization.
RxJava is commonly used for running simple background computations. It supports Java 6 or higher and languages that are based on JVM such as JRuby, Groovy and Clojure.
Features
- Single dependency: Reactive-Streams
- Java 8 lambda-friendly API
- Android desugar friendly
- Non-opinionated about the source of concurrency
- Async or synchronous execution
- Virtual time and schedulers for parameterized concurrency
- Test and diagnostic support