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:
repositories { //maven { url 'https://repo.spring.io/snapshot' } mavenCentral() } dependencies { //implementation "io.projectreactor.kotlin:reactor-kotlin-extensions:1.3.1-SNAPSHOT" implementation "io.projectreactor.kotlin:reactor-kotlin-extensions:1.3.0" }With Maven from Maven Central repositories (stable releases):
<dependency> <groupId>io.projectreactor.kotlin</groupId> <artifactId>reactor-kotlin-extensions</artifactId> <version>1.3.0</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.1-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.