Sobre o projeto

RxJava é uma implementação Java VM do Reactive Extensions: uma biblioteca para compor programas assíncronos e baseados em eventos usando sequências observáveis. Ele estende o padrão observer para suportar sequências de dados e eventos, adicionando operadores que permitem aos desenvolvedores compor sequências declarativamente, abstraindo preocupações de baixo nível de threading, sincronização, segurança de thread e estruturas de dados concorrentes. O README documenta a versão 4.x, descrita como uma implementação Java nativa que não requer bibliotecas de tempo de execução de terceiros, com suporte JPMS e OSGi, uma implementação baseada em java.util.concurrent.Flow, suporte a Virtual Thread e um novo tipo Streamable construído em torno de bloqueio virtual. Ele também observa o uso do Reactive Streams Test Compatibility Kit, o uso da API Java Cleaner para detecção de vazamento de recursos e que o suporte RxJava 3.x será reduzido após o lançamento 4.x. Getting started cobre a adição da dependência (io.reactivex.rxjava4:rxjava) e um exemplo Hello World usando Flowable.just(...).subscribe(...). Os tipos base incluem Flowable (0..N com backpressure), Observable (0..N sem backpressure), Single (exatamente um item ou erro), Completable (apenas conclusão ou erro), Maybe (nenhum item, um item ou erro) e Streamable (bloqueio virtual com backpressure nativo). O README explica terminologia como upstream/downstream, emissões, backpressure, tempo de montagem, tempo de assinatura e tempo de execução, com exemplos de código para computação em segundo plano, schedulers, concorrência dentro de um fluxo, processamento paralelo, subfluxos dependentes, continuações e conversões de tipo entre tipos reativos. Ele também documenta convenções de nomenclatura de operadores impulsionadas por palavras-chave Java, apagamento de tipo e ambiguidades de tipo.