Repolode
ReactiveX

ReactiveX/RxJava

A Java VM implementation of Reactive Extensions for composing asynchronous and event-based programs with observable sequences.

Stars
48,159
Forks
7,584
Open issues
12
Last commit
yesterday

What is it?

RxJava extends the observer pattern to sequences of data and events, and provides operators to combine, transform and filter those sequences declaratively. Developers write processing pipelines without managing low-level threads, synchronization or concurrent data structures directly; work is moved between threads through Scheduler abstractions such as subscribeOn and observeOn.

The library offers several reactive types for different cardinalities: Flowable for backpressured streams, Observable for unbounded streams without backpressure, Single, Maybe and Completable for zero or one results, and Streamable for virtual-thread-based blocking flows in version 4. Version 4.x is built on java.util.concurrent.Flow, requires no third-party runtime dependencies, and supports Virtual Threads through schedulers such as Schedulers.virtual().

The project is licensed under Apache-2.0 and is published to Maven Central under the io.reactivex.rxjava4 group. Its wiki and Javadoc document the operators, and version 3.x remains available for existing code.

Key features

  • 01Composes asynchronous data and event streams with declarative operators such as map, filter and flatMap.
  • 02Provides Flowable with backpressure and Observable without it, plus Single, Maybe and Completable for single-result cases.
  • 03Switches work between threads with Schedulers, including computation, cached, virtual and single.
  • 04Built on java.util.concurrent.Flow with no required third-party runtime dependencies.
  • 05Supports Virtual Threads through Schedulers.virtual() and virtualCreate().

Use cases

  • Running network or database calls in the background and delivering results to a UI thread.
  • Chaining dependent asynchronous service calls where each step uses the previous result.
  • Processing event streams with controlled memory use via backpressure.
  • Coordinating parallel work with flatMap or ParallelFlowable and merging the results.

Quick start

  1. 1

    Add the RxJava 4 dependency to your build (Gradle example in README)

  2. 2

    Write and run the Hello World program using Flowable

Things to know

  • Built for Java 26; README notes Android compatibility depends on API level and desugaring.
  • Version 4 uses new package names (io.reactivex.rxjava4), so migrating from 3.x requires code changes.
  • RxJava 3.x support will be reduced in the coming months.

Topics

FAQ

What is RxJava?
A Java VM implementation of Reactive Extensions for composing asynchronous and event-based programs with observable sequences. RxJava extends the observer pattern to sequences of data and events, and provides operators to combine, transform and filter those sequences declaratively. Developers write processing pipelines without managing low-level threads, synchronization or concurrent data structures directly; work is moved between threads through Scheduler abstractions such as subscribeOn and observeOn.
Is RxJava free to use? What license does it have?
RxJava is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is RxJava still maintained?
Actively maintained. The last commit to RxJava was on Oct 23, 2026.
What can I use RxJava for?
Running network or database calls in the background and delivering results to a UI thread. Chaining dependent asynchronous service calls where each step uses the previous result. Processing event streams with controlled memory use via backpressure. Coordinating parallel work with flatMap or ParallelFlowable and merging the results.
How do I install RxJava?
Add the RxJava 4 dependency to your build (Gradle example in README) Write and run the Hello World program using Flowable
Where can I get RxJava?
The source code and installation instructions are on GitHub: https://github.com/ReactiveX/RxJava

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects