RxJava is a Java VM implementation of Reactive Extensions: a library for composing asynchronous and event-based programs by using observable sequences.
It extends the observer pattern to support sequences of data/events and adds operators that allow you to compose sequences together declaratively while abstracting away concerns about things like low-level threading, synchronization, thread-safety and concurrent data structures.
- Zero Dependencies
- Java 6+ & Android 2.3+
- Java 8 lambda support
- Polyglot (Scala, Groovy, Clojure and Kotlin)
- Non-opinionated about source of concurrency (threads, pools, event loops, fibers, actors, etc)
- Async or synchronous execution
- Virtual time and schedulers for parameterized concurrency
SDK for Android
This release contains mostly internal cleanups, reinforced Observable-protocol adherence and minor javadoc fixes.
PublishSubject now signals MissingBackpressureException when backpressured.
Add Observable.sorted() + overloads: sorts and re-emits each element of a finite sequence.
Add concatDelayError multiple arguments.
Add Observable.concat(Iterable) overload.
Schedulers.io() workers now wait until a blocking task finishes before becoming available again.
Fix all multiple terminal events.
Fix reentrancy bug in repeatWhen and retryWhen when the resubscription happens.
PublishSubject now checks for unsubscribed child while dispatching events.
Fix any multiple terminal events.
Fix reduce multiple terminal events.
Fix onBackpressureDrop multiple terminal events.
Fix collect multiple terminal events.
Fix toMap multiple terminal events and backpressure behavior.
Fix toMultimap multiple terminal events .
Fix Schedulers.from() to call RxJavaHooks.onScheduleAction.