Repolode
ReactiveX

ReactiveX/RxJava

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

Звёзды
48,159
Форки
7,584
Открытые issues
12
Последний коммит
вчера

Что это?

RxJava расширяет шаблон наблюдателя на последовательности данных и событий и предоставляет операторы для декларативного объединения, преобразования и фильтрации таких последовательностей. Разработчики создают конвейеры обработки, не управляя напрямую низкоуровневыми потоками, синхронизацией и конкурентными структурами данных; переключать выполнение между потоками помогают абстракции Scheduler, например subscribeOn и observeOn.

Библиотека предлагает несколько реактивных типов для разных вариантов количества элементов: Flowable — для потоков с backpressure, Observable — для неограниченных потоков без backpressure, Single, Maybe и Completable — для нуля или одного результата, а также Streamable — для блокирующих потоков на виртуальных потоках в версии 4. Версия 4.x построена на java.util.concurrent.Flow, не требует сторонних зависимостей времени выполнения и поддерживает Virtual Threads через планировщики, такие как Schedulers.virtual().

Проект распространяется по лицензии Apache-2.0 и опубликован в Maven Central в группе io.reactivex.rxjava4. Вики и Javadoc описывают операторы, а версия 3.x остаётся доступной для существующего кода.

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

  • 01Позволяет компоновать асинхронные потоки данных и событий с помощью декларативных операторов, таких как map, filter и flatMap.
  • 02Предоставляет Flowable с backpressure и Observable без него, а также Single, Maybe и Completable для случаев с единственным результатом.
  • 03Переключает выполнение между потоками с помощью Schedulers, включая computation, cached, virtual и single.
  • 04Построена на java.util.concurrent.Flow и не требует сторонних зависимостей времени выполнения.
  • 05Поддерживает Virtual Threads через Schedulers.virtual() и virtualCreate().

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

  • Выполнение сетевых запросов или обращений к базе данных в фоновом режиме с передачей результатов в поток UI.
  • Объединение зависимых асинхронных вызовов сервисов, где каждый шаг использует результат предыдущего.
  • Обработка потоков событий с контролируемым использованием памяти благодаря backpressure.
  • Координация параллельных задач с помощью flatMap или ParallelFlowable и объединение результатов.

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

  1. 1

    Добавьте зависимость RxJava 4 в сборку (пример для Gradle приведён в README).

  2. 2

    Напишите и запустите программу Hello World с использованием Flowable.

Что важно знать

  • Разработано для Java 26; в README отмечено, что совместимость с Android зависит от уровня API и desugaring.
  • В версии 4 используются новые имена пакетов (io.reactivex.rxjava4), поэтому переход с 3.x требует изменений в коде.
  • В ближайшие месяцы поддержка RxJava 3.x будет сокращаться.

Темы

Частые вопросы

Что такое RxJava?
Реализация Reactive Extensions для Java VM, позволяющая компоновать асинхронные программы и программы на основе событий с помощью последовательностей Observable. RxJava расширяет шаблон наблюдателя на последовательности данных и событий и предоставляет операторы для декларативного объединения, преобразования и фильтрации таких последовательностей. Разработчики создают конвейеры обработки, не управляя напрямую низкоуровневыми потоками, синхронизацией и конкурентными структурами данных; переключать выполнение между потоками помогают абстракции Scheduler, например subscribeOn и observeOn.
RxJava можно использовать бесплатно? Какая у него лицензия?
RxJava распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
RxJava всё ещё поддерживается?
Активно поддерживается. Последний коммит в RxJava — 23 окт. 2026 г..
Для чего можно использовать RxJava?
Выполнение сетевых запросов или обращений к базе данных в фоновом режиме с передачей результатов в поток UI. Объединение зависимых асинхронных вызовов сервисов, где каждый шаг использует результат предыдущего. Обработка потоков событий с контролируемым использованием памяти благодаря backpressure. Координация параллельных задач с помощью flatMap или ParallelFlowable и объединение результатов.
Как установить RxJava?
Добавьте зависимость RxJava 4 в сборку (пример для Gradle приведён в README). Напишите и запустите программу Hello World с использованием Flowable.
Где скачать RxJava?
Исходный код и инструкции по установке — на GitHub: https://github.com/ReactiveX/RxJava

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

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

Асинхронная среда выполнения для Rust с планировщиком задач, неблокирующим вводом-выводом, сетевыми возможностями и таймерами для надёжных сетевых приложений.

33,5 тыс.+7 за неделю5,8 тыс.RustMITОбновлён 12 часов назад

Асинхронный событийный Java-фреймворк для создания удобных в сопровождении и высокопроизводительных серверов и клиентов сетевых протоколов.

35,1 тыс.16,3 тыс.JavaApache-2.0Обновлён 18 часов назад