Kotlin 协程库,提供协程构建器、调度器、Flow、Channel 等异步编程与结构化并发工具。
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
在构建配置中添加 RxJava 4 依赖(README 中有 Gradle 示例)
- 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 数据每日更新。
相关项目
Rust 异步运行时,提供任务调度、非阻塞 I/O、网络和定时器,用于构建可靠的异步应用。
为 Python requests 库提供的轻量扩展,基于 concurrent.futures 异步发送 HTTP 请求。
一种基于状态机的编程语言,用于对分布式系统进行形式化建模并系统性检验其正确性。
一个响应式 Python 笔记本,自动重算依赖单元格,以纯 .py 文件存储,可作为脚本运行或部署为应用。
基于事件驱动的异步 Java 网络框架,用于快速开发高性能、易维护的协议服务端与客户端。