Библиотека Kotlin с coroutine builders, диспетчерами, Flow, каналами и примитивами структурированной конкурентности для асинхронного кода.
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
Добавьте зависимость RxJava 4 в сборку (пример для Gradle приведён в README).
- 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 с планировщиком задач, неблокирующим вводом-выводом, сетевыми возможностями и таймерами для надёжных сетевых приложений.
Небольшое дополнение к библиотеке Python requests для асинхронной отправки HTTP-запросов с помощью concurrent.futures.
Язык программирования на основе конечных автоматов для формального моделирования и систематической проверки корректности распределённых систем.
Реактивный Python-ноутбук, который автоматически перезапускает зависимые ячейки, хранит ноутбуки в виде обычных файлов .py и запускается как скрипт или приложение.
Асинхронный событийный Java-фреймворк для создания удобных в сопровождении и высокопроизводительных серверов и клиентов сетевых протоколов.