Repolode
ReactiveX

ReactiveX/RxSwift

Реализация Reactive Extensions (Rx) на Swift для объединения асинхронных событий и потоков данных с помощью последовательностей Observable.

Звёзды
24,627
Форки
4,147
Открытые issues
19
Последний коммит
2 месяца назад

Что это?

RxSwift переносит модель Reactive Extensions (ReactiveX) в Swift. Асинхронные задачи, события UI, наблюдения KVO и другие потоки данных представлены в виде последовательностей Observable: их можно преобразовывать, фильтровать и объединять с помощью множества операторов, а также подписываться на получение значений и событий завершения.

Проект состоит из нескольких модулей. RxSwift — ядро без внешних зависимостей. RxCocoa добавляет специфичные для Cocoa инструменты для iOS, macOS, tvOS и watchOS, например привязки к элементам управления UIKit и AppKit, а также общие последовательности и трейты вроде Driver. RxRelay предоставляет PublishRelay, BehaviorRelay и ReplayRelay, а RxTest и RxBlocking помогают тестировать код на Rx.

RxSwift можно установить с помощью Swift Package Manager, Carthage, XCFrameworks или git submodules. В репозитории есть пример приложения и документация по началу работы, трейтам, тестированию и распространённым ошибкам.

Ключевые возможности

  • 01Последовательности Observable объединяют асинхронные операции, события UI и потоки KVO.
  • 02Большой набор операторов для преобразования, фильтрации и объединения потоков.
  • 03RxCocoa предоставляет привязки и общие последовательности для UI-фреймворков Apple.
  • 04RxRelay предоставляет обёртки PublishRelay, BehaviorRelay и ReplayRelay над subject.
  • 05RxTest и RxBlocking помогают тестировать код на Rx.
  • 06Можно установить через Swift Package Manager, Carthage или XCFrameworks.

Сценарии использования

  • Привязка результатов сетевого поиска к таблице с задержкой ввода и отменой запросов.
  • Объединение нескольких асинхронных вызовов API в единый реактивный конвейер в приложении для iOS.
  • Управление состоянием UI на основе пользовательского ввода и изменений модели в архитектурах MVVM.
  • Написание модульных тестов асинхронной логики потоков с помощью RxTest.

Быстрый старт

  1. 1

    Добавьте RxSwift в качестве зависимости в Package.swift

  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?
Реализация Reactive Extensions (Rx) на Swift для объединения асинхронных событий и потоков данных с помощью последовательностей Observable. RxSwift переносит модель Reactive Extensions (ReactiveX) в Swift. Асинхронные задачи, события UI, наблюдения KVO и другие потоки данных представлены в виде последовательностей Observable: их можно преобразовывать, фильтровать и объединять с помощью множества операторов, а также подписываться на получение значений и событий завершения.
RxSwift можно использовать бесплатно? Какая у него лицензия?
RxSwift распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
RxSwift всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в RxSwift — 4 сент. 2026 г..
Для чего можно использовать RxSwift?
Привязка результатов сетевого поиска к таблице с задержкой ввода и отменой запросов. Объединение нескольких асинхронных вызовов API в единый реактивный конвейер в приложении для iOS. Управление состоянием UI на основе пользовательского ввода и изменений модели в архитектурах MVVM. Написание модульных тестов асинхронной логики потоков с помощью RxTest.
Как установить RxSwift?
Добавьте RxSwift в качестве зависимости в Package.swift Соберите проект с помощью Swift Package Manager: swift build
Где скачать RxSwift?
Исходный код и инструкции по установке — на GitHub: https://github.com/ReactiveX/RxSwift

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Библиотека утилит для TypeScript с функциями для массивов, объектов и других типичных задач, поддерживающими вызов с данными до или после функции.

5,5 тыс.+1 за неделю174TypeScriptMITАктивно поддерживаетсяОбновлён 17 часов назад

Библиотека на OCaml для эффективного обновления вычислений при изменении входных данных, основанная на концепции самонастраивающихся вычислений.

Инструменты разработчика#ocaml#incremental-computation#self-adjusting-computation
1,5 тыс.+2 за неделю76OCamlMITОбновлён 4 дня назад

Реализация Reactive Extensions для Java VM, позволяющая компоновать асинхронные программы и программы на основе событий с помощью последовательностей Observable.

Бэкенд и API#reactive-programming#java#asynchronous
48,2 тыс.7,6 тыс.JavaApache-2.0Активно поддерживаетсяОбновлён 24 часа назад

Простое и масштабируемое управление состоянием в приложениях на JavaScript и TypeScript с автоматическим отслеживанием зависимостей и оптимальным обновлением интерфейса.

28,2 тыс.1,8 тыс.TypeScriptMITАктивно поддерживаетсяОбновлён 18 часов назад

Реактивный Python-ноутбук, который автоматически перезапускает зависимые ячейки, хранит ноутбуки в виде обычных файлов .py и запускается как скрипт или приложение.

23,5 тыс.+83 за неделю1,4 тыс.PythonApache-2.0Активно поддерживаетсяОбновлён 13 часов назад