Project Reactor

Reactive FastData for a New Age

Reactor is a foundational library for building reactive fast-data applications on the JVM. It is an implementation of the Reactive Streams Specification. You can use Reactor to power an application that has a low tolerance for latency and demands extremely high throughput.

  • Extremely Fast — Reactor is designed to be extraordinarily fast and can sustain throughput rates on the order of 10's of millions of operations per second.
  • Succinct but Powerful — Reactor has an extremely powerful, yet succinct API for declaring data transformations and functional composition.
  • Mechanically Sympathetic — Reactor makes use of the concept of Mechanical Sympathy by building on top of the Disruptor RingBuffer.
  • Fully Reactive — Reactor is designed to be functional and reactive to allow for easy composition of operations.

Learn about Reactor through code samples, reference documentation, and the API Javadoc.

Browse the source code on GitHub or get involved in the project.

Interact with the community on Google Groups or StackOverflow #reactor.

Getting started with Reactor

To use the core components of Reactor like EventBus, Stream, and others, just use the reactor-core artifact. Just replace ${reactorVersion} in the examples below with the version you want to use (the latest is 2.0.4.RELEASE).

build.gradle
repositories {
  maven { url 'http://repo.spring.io/libs-milestone' }
}

dependencies {
  compile "io.projectreactor:reactor-core:${reactorVersion}"
}
pom.xml
<repositories>
  <repository>
    <id>spring-milestone</id>
    <name>Spring Milestones</name>
    <url>https://repo.spring.io/libs-milestone</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>io.projectreactor</groupId>
    <artifactId>reactor-core</artifactId>
    <version>${reactorVersion}</version>
  </dependency>
</dependencies>

Reactor and Reactive Streams

reactive streams members