Add various extensions and adapters for Kotlin programming language. While Reactor Core, Reactor Addons and other Reactor libraries
are designed to be Kotlin friendly with the use of @Nullable
and carefully picked signature types, Kotlin developers might
want to adapt the core functional programming API further.
With Gradle from repo.spring.io or Maven Central repositories (stable releases only):
repositories {
//maven { url 'https://repo.spring.io/snapshot' }
maven { url 'https://repo.spring.io/milestone' }
mavenCentral()
}
dependencies {
//implementation "io.projectreactor.kotlin:reactor-kotlin-extensions:1.3.0-SNAPSHOT"
implementation "io.projectreactor.kotlin:reactor-kotlin-extensions:1.3.0-RC1"
}
With Maven from Maven Central repositories (stable releases):
<dependency>
<groupId>io.projectreactor.kotlin</groupId>
<artifactId>reactor-kotlin-extensions</artifactId>
<version>1.3.0-RC1</version>
</dependency>
Or from repo.spring.io with access to SNAPSHOT:
...
<dependencies>
<dependency>
<groupId>io.projectreactor.kotlin</groupId>
<artifactId>reactor-kotlin-extensions</artifactId>
<version>1.3.0-SNAPSHOT</version>
</dependency>
</dependencies>
...
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
Tuple destructure:
val (t1, t2, t3) = Tuples.of(O1, O2, O3)
assertEquals(t1, O1)
assertEquals(t2, O2)
assertEquals(t3, O3)
Convert, sum (requires reactor-extra) and test (requires reactor-test):
intArrayOf(2_000_000_000, 200_000_000) //sum overflows an Int
.toFlux()
.sum()
.test()
.expectNext(2_200_000_000)
.verifyComplete()
Coordinating when two mono completes:
whenComplete("foo1".toMono(), "foo2".toMono())
.test()
.verifyComplete()
Reactor is Apache 2.0 licensed.