Repolode
ReactiveX

ReactiveX/RxJava

Java 虚拟机上的 Reactive Extensions 实现,用可观察的数据序列编排异步和事件驱动程序。

Star
48,159
Fork
7,584
未关闭 Issue
12
最近提交
昨天

这是什么?

RxJava 将观察者模式扩展到数据和事件序列上,并提供一组操作符,用声明式的方式组合、转换和过滤这些序列。开发者可以搭建处理流水线,而无需直接管理底层线程、同步或并发数据结构;线程之间的切换通过 subscribeOn、observeOn 等 Scheduler 抽象完成。

库中提供多种响应式类型以适应不同场景:Flowable 支持背压,Observable 用于无背压的数据流,Single、Maybe、Completable 分别表示 0 或 1 个结果的流,Streamable 则基于虚拟线程提供阻塞式数据流。4.x 版本基于 java.util.concurrent.Flow 实现,运行时无需第三方依赖,并可通过 Schedulers.virtual() 使用虚拟线程。

项目采用 Apache-2.0 许可证,以 io.reactivex.rxjava4 为组织名发布到 Maven Central。Wiki 和 Javadoc 提供操作符的详细文档,已有代码也可继续使用 3.x 版本。

核心功能

  • 01用 map、filter、flatMap 等声明式操作符组合异步数据流和事件流。
  • 02提供支持背压的 Flowable 和不支持背压的 Observable,以及用于单结果场景的 Single、Maybe、Completable。
  • 03通过 Scheduler 在线程之间切换任务,包括 computation、cached、virtual 和 single。
  • 04基于 java.util.concurrent.Flow 实现,运行时无需必需的第三方依赖。
  • 05通过 Schedulers.virtual() 和 virtualCreate() 支持虚拟线程。

适用场景

  • 在后台执行网络或数据库调用,并把结果交给 UI 线程。
  • 串联依赖前一步结果的异步服务调用。
  • 借助背压处理事件流,控制内存占用。
  • 用 flatMap 或 ParallelFlowable 并行执行任务并合并结果。

快速上手

  1. 1

    在构建配置中添加 RxJava 4 依赖(README 中有 Gradle 示例)

  2. 2

    编写并运行使用 Flowable 的 Hello World 程序

使用前须知

  • 基于 Java 26 构建;README 指出 Android 兼容性取决于 API 级别和去糖化支持。
  • 4.x 使用新的包名(io.reactivex.rxjava4),从 3.x 迁移需要修改代码。
  • RxJava 3.x 的支持将在未来几个月逐步减少。

标签

常见问题

RxJava 是什么?
Java 虚拟机上的 Reactive Extensions 实现,用可观察的数据序列编排异步和事件驱动程序。 RxJava 将观察者模式扩展到数据和事件序列上,并提供一组操作符,用声明式的方式组合、转换和过滤这些序列。开发者可以搭建处理流水线,而无需直接管理底层线程、同步或并发数据结构;线程之间的切换通过 subscribeOn、observeOn 等 Scheduler 抽象完成。
RxJava 可以免费使用吗?用的什么许可证?
RxJava 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
RxJava 还在维护吗?
活跃维护中。RxJava 最近一次提交是在 2026年10月23日。
RxJava 适合用来做什么?
在后台执行网络或数据库调用,并把结果交给 UI 线程。 串联依赖前一步结果的异步服务调用。 借助背压处理事件流,控制内存占用。 用 flatMap 或 ParallelFlowable 并行执行任务并合并结果。
RxJava 怎么安装和运行?
在构建配置中添加 RxJava 4 依赖(README 中有 Gradle 示例) 编写并运行使用 Flowable 的 Hello World 程序
在哪里获取 RxJava?
源代码和安装说明在 GitHub 上:https://github.com/ReactiveX/RxJava

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目