Repolode
ReactiveX

ReactiveX/RxSwift

Swift 版 Reactive Extensions(Rx)实现,用 Observable 序列组合异步事件与数据流。

Star
24,627
Fork
4,147
未关闭 Issue
19
最近提交
2个月前

这是什么?

RxSwift 将 ReactiveX 的响应式编程模型引入 Swift。它把异步任务、UI 事件、KVO 观察以及其他数据流统一抽象为 Observable 序列,并可通过丰富的操作符进行转换、过滤和组合,再订阅其值与完成事件。

项目由多个模块组成。RxSwift 是核心模块,没有外部依赖。RxCocoa 提供面向 iOS、macOS、tvOS 和 watchOS 的 Cocoa 扩展,例如 UIKit 和 AppKit 控件的绑定,以及 Driver 等共享序列和 Trait。RxRelay 提供 PublishRelay、BehaviorRelay 和 ReplayRelay;RxTest 与 RxBlocking 则用于测试基于 Rx 的代码。

可通过 Swift Package Manager、Carthage、XCFrameworks 或 git submodule 安装。仓库附带示例应用,并提供入门、Trait、单元测试和常见问题等文档。

核心功能

  • 01Observable 序列统一处理异步操作、UI 事件和 KVO 数据流。
  • 02提供大量操作符用于转换、过滤和组合数据流。
  • 03RxCocoa 为 Apple 平台 UI 框架提供绑定和共享序列。
  • 04RxRelay 提供基于 Subject 封装的 PublishRelay、BehaviorRelay 和 ReplayRelay。
  • 05RxTest 与 RxBlocking 支持对 Rx 代码进行测试。
  • 06支持通过 Swift Package Manager、Carthage 或 XCFrameworks 安装。

适用场景

  • 在 iOS 应用中对搜索输入做防抖处理后将网络结果绑定到表格视图。
  • 将多个异步 API 调用组合为一条响应式处理链。
  • 在 MVVM 架构中,根据用户输入和模型变化驱动界面状态。
  • 使用 RxTest 为异步数据流逻辑编写单元测试。

快速上手

  1. 1

    在 Package.swift 中添加 RxSwift 依赖

  2. 2

    使用 Swift Package Manager 构建项目

    swift build

使用前须知

  • README 提到一个尚未解决的 Swift Package Manager 交叉依赖问题(SR-12303),可能影响构建。

收录于专题

标签

#reactive-programming#swift#ios#functional-programming#observable#async#rxswift#functional#observer#reactive

常见问题

RxSwift 是什么?
Swift 版 Reactive Extensions(Rx)实现,用 Observable 序列组合异步事件与数据流。 RxSwift 将 ReactiveX 的响应式编程模型引入 Swift。它把异步任务、UI 事件、KVO 观察以及其他数据流统一抽象为 Observable 序列,并可通过丰富的操作符进行转换、过滤和组合,再订阅其值与完成事件。
RxSwift 可以免费使用吗?用的什么许可证?
RxSwift 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
RxSwift 还在维护吗?
半年内有更新。RxSwift 最近一次提交是在 2026年9月4日。
RxSwift 适合用来做什么?
在 iOS 应用中对搜索输入做防抖处理后将网络结果绑定到表格视图。 将多个异步 API 调用组合为一条响应式处理链。 在 MVVM 架构中,根据用户输入和模型变化驱动界面状态。 使用 RxTest 为异步数据流逻辑编写单元测试。
RxSwift 怎么安装和运行?
在 Package.swift 中添加 RxSwift 依赖 使用 Swift Package Manager 构建项目: swift build
在哪里获取 RxSwift?
源代码和安装说明在 GitHub 上:https://github.com/ReactiveX/RxSwift

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

相关项目