Reactor Core is a reactive streams library for the JVM that implements non-blocking, asynchronous event processing with a Reactive Extensions inspired API.
The library solves the problem of handling asynchronous data flows efficiently on the JVM without blocking threads. It provides two primary abstractions: Flux for handling streams of multiple elements and Mono for single-element or empty sequences. Both implement the Reactive Streams specification, allowing composition of operations through a fluent API. The approach emphasizes non-blocking execution, enabling applications to handle high concurrency with minimal thread overhead. The project also includes reactor-tools, a Java agent designed to assist with debugging reactive code.
Reactor Core suits applications requiring efficient asynchronous processing, such as high-throughput services, real-time data pipelines, and systems handling many concurrent connections. It works well for teams already familiar with reactive programming concepts or those migrating from other Reactive Extensions implementations. The library requires Java 8 or higher to run, though it can work with Android SDK 21 and above without official support. Developers building with Gradle or Maven can obtain stable releases from standard repositories, with milestones and snapshots available through the project documentation.
The project maintains active development across multiple Java versions, requiring toolchain support for Java 8, 9, and 21 to build successfully due to multi-release JAR file support. Documentation is built with Antora and requires Java 17 or higher, with optional PDF generation available through asciidoctor-pdf. The codebase includes comprehensive reference documentation and hands-on learning resources to help developers get started with reactive programming concepts.