OSS TanbouSign in with GitHub

Compose asynchronous and event-driven JVM programs with typed streams and operators

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
48,186
Primary language
Java
License
Apache-2.0
Repository last updated
Oct 3, 2026
On this page

Overview

RxJava implements Reactive Extensions for the JVM. Flowable, Observable, Single, Maybe, and Completable model different result cardinalities, while operators compose transformations, combination, retries, and scheduler changes.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Core capabilities

Flowable supports Reactive Streams backpressure, while Observable serves short sequences or UI events that do not need it. Single, Maybe, and Completable encode one, optional, or completion-only results.

subscribeOn and observeOn move work across schedulers, while operators such as map, flatMap, zip, and retry keep asynchronous control flow declarative.

Sources: [1]

Best fit

Where it fits

It fits JVM services and Android applications that need one model for multiple asynchronous sources, retries, cancellation, and flow control.

Sources: [1]

Before adoption

Constraints to check

Stable 3.1.12 library consumers target Java 8+ or Android API 21+. Source verification separately requires a JDK that can launch the Gradle 8.14 Wrapper; the build then selects an Adoptium Java 8 toolchain by default. The 4.x line is a Java 26 development line with a different package namespace.

Sources: [1][2][3][4]

Official sources

  1. [1]RxJava v3.1.12 README(2026-10-04)
  2. [2]RxJava v3.1.12 release(2026-10-04)
  3. [3]RxJava v3.1.12 package/build metadata(2026-10-04)
  4. [4]RxJava 3.1.12 Gradle Wrapper metadata(2026-10-04)
  5. [5]RxJava v3.1.12 license(2026-10-04)
Supplemental curator note

Its value lies in choosing a type from result cardinality and backpressure needs instead of forcing every asynchronous operation into one abstraction. Start by testing the fixed stable release and keep the 3.x/4.x boundary explicit.

Try it in 3 steps

  1. 1

    Clone stable 3.1.12

    Pin the stable 3.x source in a dedicated directory.

    git clone --branch v3.1.12 --depth 1 https://github.com/ReactiveX/RxJava.git rxjava-3.1.12
  2. 2

    Check the build JDK and Wrapper

    Enter the working directory and verify a JDK that launches Gradle Wrapper 8.14 plus the selected Java toolchain.

    cd rxjava-3.1.12 && java -version && ./gradlew --version
  3. 3

    Run the library tests

    Remain in the same working directory and exercise operators, reactive types, and backpressure tests.

    ./gradlew test
Check the official README

Growth

Growth trends · Last 30 days

48,186 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
13
Open PRs
0

Development activity is still being collected.

Built with

Categories and tags

Categories

Tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • java
  • rxjava
  • flow
  • reactive-streams
Stars
48,186
Forks
7,585
Watchers
2,151
Open issues
11
Contributors
299
Owner type
Organization
Primary language
Java
License
Apache-2.0
Repository last updated
Oct 3, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?