Biblioteca Kotlin com builders de coroutines, dispatchers, Flow, canais e primitivas de concorrência estruturada para código assíncrono.
ReactiveX/RxJava
Implementação das Reactive Extensions para a Java VM, que permite compor programas assíncronos e orientados a eventos com sequências observáveis.
- Estrelas
- 48,159
- Forks
- 7,584
- Issues abertas
- 12
- Último commit
- ontem
O que é?
O RxJava estende o padrão observer a sequências de dados e eventos e oferece operadores para combinar, transformar e filtrar essas sequências de forma declarativa. Com ele, os desenvolvedores criam pipelines de processamento sem gerenciar diretamente threads de baixo nível, sincronização ou estruturas de dados concorrentes; o trabalho é transferido entre threads por meio de abstrações Scheduler, como subscribeOn e observeOn.
A biblioteca oferece vários tipos reativos para diferentes cardinalidades: Flowable para streams com backpressure, Observable para streams ilimitados sem backpressure, Single, Maybe e Completable para zero ou um resultado, e Streamable para fluxos bloqueantes baseados em Virtual Threads na versão 4. A versão 4.x é construída sobre java.util.concurrent.Flow, não exige dependências de runtime de terceiros e oferece suporte a Virtual Threads por meio de schedulers como Schedulers.virtual().
O projeto é licenciado sob Apache-2.0 e publicado no Maven Central no grupo io.reactivex.rxjava4. O wiki e o Javadoc documentam os operadores, e a versão 3.x continua disponível para o código existente.
Recursos principais
- 01Compõe streams assíncronos de dados e eventos com operadores declarativos, como map, filter e flatMap.
- 02Oferece Flowable com backpressure e Observable sem backpressure, além de Single, Maybe e Completable para casos com resultado único.
- 03Transfere o trabalho entre threads com Schedulers, incluindo computation, cached, virtual e single.
- 04É construído sobre java.util.concurrent.Flow e não exige dependências de runtime de terceiros.
- 05Oferece suporte a Virtual Threads por meio de Schedulers.virtual() e virtualCreate().
Casos de uso
- Executar chamadas de rede ou banco de dados em segundo plano e entregar os resultados a uma thread de UI.
- Encadear chamadas assíncronas dependentes a serviços, em que cada etapa usa o resultado da anterior.
- Processar streams de eventos com uso de memória controlado por backpressure.
- Coordenar trabalho paralelo com flatMap ou ParallelFlowable e combinar os resultados.
Início rápido
- 1
Adicione a dependência do RxJava 4 ao seu build (consulte o exemplo de Gradle no README).
- 2
Escreva e execute o programa Hello World usando Flowable.
Antes de usar
- Desenvolvido para Java 26; o README informa que a compatibilidade com Android depende do nível da API e do desugaring.
- A versão 4 usa novos nomes de pacote (io.reactivex.rxjava4), portanto, migrar da 3.x exige alterações no código.
- O suporte ao RxJava 3.x será reduzido nos próximos meses.
Tópicos
Perguntas frequentes
- O que é RxJava?
- Implementação das Reactive Extensions para a Java VM, que permite compor programas assíncronos e orientados a eventos com sequências observáveis. O RxJava estende o padrão observer a sequências de dados e eventos e oferece operadores para combinar, transformar e filtrar essas sequências de forma declarativa. Com ele, os desenvolvedores criam pipelines de processamento sem gerenciar diretamente threads de baixo nível, sincronização ou estruturas de dados concorrentes; o trabalho é transferido entre threads por meio de abstrações Scheduler, como subscribeOn e observeOn.
- RxJava é gratuito? Qual é a licença?
- RxJava é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- RxJava ainda é mantido?
- Manutenção ativa. O último commit de RxJava foi em 23 de out. de 2026.
- Para que posso usar RxJava?
- Executar chamadas de rede ou banco de dados em segundo plano e entregar os resultados a uma thread de UI. Encadear chamadas assíncronas dependentes a serviços, em que cada etapa usa o resultado da anterior. Processar streams de eventos com uso de memória controlado por backpressure. Coordenar trabalho paralelo com flatMap ou ParallelFlowable e combinar os resultados.
- Como instalar RxJava?
- Adicione a dependência do RxJava 4 ao seu build (consulte o exemplo de Gradle no README). Escreva e execute o programa Hello World usando Flowable.
- Onde consigo RxJava?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ReactiveX/RxJava
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Runtime assíncrono para Rust com agendamento de tarefas, I/O não bloqueante, rede e temporizadores para criar aplicações de rede confiáveis.
Um complemento leve para a biblioteca requests do Python que envia requisições HTTP de forma assíncrona usando concurrent.futures.
Linguagem de programação baseada em máquinas de estados para modelar formalmente e verificar sistematicamente a correção de sistemas distribuídos.
Um notebook reativo para Python que reexecuta automaticamente células dependentes, salva notebooks como arquivos .py simples e pode rodar como script ou app publicado.
Framework Java assíncrono e orientado a eventos para criar servidores e clientes de protocolo de rede de alto desempenho e fáceis de manter.