ReactiveX

ReactiveX/RxJava

Java Apache-2.0 Dev Tools

RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.

48.2k stars
7.6k forks
active
GitHub +8 / week

48.2k

Stars

7.6k

Forks

13

Open issues

100+

Contributors

AI Analysis

RxJava is a Java VM library for composing asynchronous and event-based programs using observable sequences, implementing Reactive Extensions for the JVM. It serves best as a foundational reactive programming framework for backend systems, middleware, and services that require declarative handling of streams, threading, and concurrent data. It benefits enterprise Java developers, platform teams, and library authors building scalable async systems; it is not a general-purpose utility library fo...

Dev Tools Library Discovery value: 2/10
Documentation 8/10
Activity 9/10
Community 9/10
Code quality 8/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 9/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

reactive-programming java-streams asynchronous concurrency event-driven
Actively maintained Well documented Popular Niche/specialized use case Production ready
Deep Analysis · Based on README and public signals
3w ago

RxJava 4.x modernizes reactive programming for the JVM with Virtual Thread and Java Flow API support

RxJava is a mature, widely-adopted library for composing asynchronous and event-based programs on the JVM using observable sequences and functional-style operators. Originally built to bring the ReactiveX model to Java, it targets backend engineers, Android developers (via RxAndroid), and anyone orchestrating complex async workflows. With 48K stars, a rich operator set, and deep ecosystem penetration, it remains a production staple in many large Java codebases. Version 4.x signals continued active investment, adding Virtual Thread support, java.util.concurrent.Flow integration, and Java 26 idioms.

Origin

Launched in early 2013 by Netflix to address async complexity at scale, RxJava popularized reactive programming on the JVM years before Project Reactor and Kotlin coroutines emerged as alternatives. It has gone through three major versions, each with significant architectural refinements.

Growth

Peak adoption came during the Android development boom (2015–2019) when RxJava was nearly ubiquitous in Android apps. Growth plateaued as Kotlin coroutines and Project Reactor captured new users. Stars have stabilized, reflecting a mature project with a loyal installed base rather than explosive new adoption. The 4.x branch shows the project pivoting toward modern JVM features rather than chasing market share.

In production

RxJava has documented production use at Netflix (its origin), and was a de facto standard in Android development for several years. Maven Central presence and over 7,500 forks suggest widespread real-world usage. Direct verification of current production scale is not available from metadata alone, but historical and ecosystem signals strongly imply significant ongoing deployment in enterprise Java and legacy Android codebases.

Code analysis
Architecture

Appears to be structured around a set of base reactive types (Flowable, Observable, Single, Maybe, Completable), each with rich operator chains. Version 4.x likely reimplements internals on top of java.util.concurrent.Flow (JDK 9+), removing the need for the older Reactive Streams bridge. Virtual Thread integration suggests scheduler-level rework. JPMS and OSGi support indicates modular-boundary discipline.

Tests

Codecov badge is present and linked to the 4.x branch, indicating coverage tracking is active. Reactive Streams TCK usage is mentioned explicitly, suggesting protocol conformance testing is part of the suite. Exact coverage percentage is not stated in the README excerpt.

Maintenance

Last push was 2026-06-19, two days before the evaluation date — unambiguously active. The README describes ongoing 4.x work with in-progress items marked, indicating regular authoring activity. RxJava 3.x is explicitly entering a maintenance-only phase with a defined sunset, showing structured lifecycle management.

Honest verdict

ADOPT IF: you are maintaining an existing RxJava 2/3 codebase, working on a Java-first project where Kotlin coroutines are not viable, or need the broadest possible operator vocabulary for complex async orchestration. AVOID IF: you are starting a new Spring Boot service (prefer Reactor) or a new Kotlin project (prefer coroutines/Flow), or need deep Android support below API levels that support desugaring for 4.x features. MONITOR IF: you are evaluating long-term maintenance trajectory for legacy RxJava 2/3 code, since 3.x support is being formally wound down within roughly 12 months of 4.x stable release.

Independent dimensions

Mainstream potential

4/10

Technical importance

8/10

Adoption evidence

8/10

Risks
  • RxJava 4.x targets Java 26+, which may exclude teams locked to LTS versions (Java 21 or 17), limiting near-term adoption of the new version.
  • Android compatibility for 4.x is explicitly uncertain in the README, potentially fragmenting the historically significant Android user base away from the new version.
  • The dominant mindshare for new JVM async projects has shifted to Kotlin coroutines and Project Reactor; RxJava may increasingly serve maintenance rather than greenfield use cases.
  • The project appears to be primarily maintained by a very small number of active contributors (inferred from repository structure), creating bus-factor risk for a widely-deployed library.
  • The transition from 3.x to 4.x involves package namespace changes and JVM requirements that create non-trivial migration friction for existing users.
Prediction

RxJava 4.x will stabilize as a technically capable but narrowing-audience library — valued for legacy migrations, Java-only shops, and specialized async orchestration — while new project adoption continues shifting toward Kotlin coroutines and Reactor.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

Java
99.9%
CSS
0.1%
Shell
0%

Information

Language
Java
License
Apache-2.0
Last updated
8h ago
Created
164mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

ReactiveX

ReactiveX/RxAndroid

RxAndroid provides Android-specific bindings for RxJava 3, enabling reactive...

20k Java Mobile
ReactiveX

ReactiveX/RxSwift

RxSwift is the Swift implementation of Reactive Extensions, providing an...

24.6k Swift Mobile
ReactiveX

ReactiveX/RxPHP

RxPHP brings Reactive Extensions to PHP, enabling developers to compose...

1.7k PHP Dev Tools
dotnet

dotnet/reactive

Reactive Extensions for .NET (Rx.NET) is a mature library for event-driven...

7.2k C# Dev Tools
reactiveui

reactiveui/ReactiveUI

ReactiveUI is a composable, cross-platform MVVM framework for .NET that applies...

8.5k C# Dev Tools
vs. alternatives
Project Reactor

The default reactive library for Spring WebFlux. Better integrated into the Spring ecosystem and favored for new greenfield backend services. RxJava offers a broader operator vocabulary and cross-platform (Android) support but lacks Spring's out-of-the-box wiring.

Kotlin Coroutines / Flow

The idiomatic choice for new Kotlin projects. Coroutines provide simpler mental model via sequential-looking async code; Kotlin Flow is less operator-rich than RxJava but benefits from language-level support. RxJava remains relevant for Java-first teams and projects not on Kotlin.

Mutiny (SmallRye)

Used in Quarkus ecosystem. Simpler API surface, less operator depth than RxJava. RxJava has a far larger operator library and longer track record.

RxSwift / RxAndroid

Sister libraries that share ReactiveX semantics. These extend RxJava's influence to iOS and Android-specific layers, reinforcing the ecosystem rather than competing with it.

Java Virtual Threads (Project Loom)

Not a reactive library but reduces the motivation for reactive-style code in latency-bound scenarios. RxJava 4.x explicitly integrates Virtual Thread support, attempting to coexist rather than be replaced.