Skip to content
This repository was archived by the owner on Mar 2, 2022. It is now read-only.

A scala extension for Project Reactor's Flux and Mono

License

Notifications You must be signed in to change notification settings

spring-attic/reactor-scala-extensions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

beacaa8 · Mar 1, 2022
Dec 9, 2020
Jul 5, 2020
Aug 6, 2020
Jul 24, 2020
Nov 18, 2017
Mar 21, 2019
Dec 25, 2019
Mar 21, 2019
Mar 1, 2022
Apr 20, 2017
Aug 6, 2020
Jul 5, 2020
Dec 9, 2020
Jun 18, 2020
Jul 5, 2020
Jul 5, 2020
Apr 18, 2020
Apr 18, 2020
Dec 9, 2019
Jul 2, 2020
Aug 6, 2020
Jul 5, 2020

reactor-scala-extensions is no longer actively maintained by VMware, Inc.

This project is being move to the spring-attic GitHub org, and may eventually reside in the vmware-archive org.

Special note from Simon Baslé @simonbasle, Reactor Project Lead: Should this project need to be revived, please reach out to the Reactor GitHub org @team + GitHub user @sinwe in a GitHub discussion or issue, or on Twitter to @projectreactor or @springops

Reactor Scala Extensions

Join the chat at https://gitter.im/reactor/reactor-scala-extensions Reactor Scala Extensions Latest Download

Build Status codecov

Average time to resolve an issue Percentage of issues still open

This project is a Scala extension for reactor-core.

Using reactor-core project as it is in scala code will look ugly because a lot of methods use Java 8 lambda which is not compatible with Scala lambda. This will force Scala code to use anonymous class which turns ugly.

So instead of

val mono = Mono.just(1)
               .map(new java.util.function.Function[Int, String] {
                   def apply(t: Int): String = t.toString
               })

it becomes

val mono = SMono.just(1).map(_.toString)

This extension will also return scala's scala.collection.immutable.Stream instead of Java's java.util.stream.Stream and scala.concurrent.Future instead of java.util.concurrent.CompletableFuture

Getting it

With SBT:

libraryDependencies += "io.projectreactor" %% "reactor-scala-extensions" % "0.7.0"

With Gradle:

repositories {
    //maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
    mavenCentral()
}

dependencies {
    //compile "io.projectreactor:reactor-scala-extensions_2.12:0.7.1-SNAPSHOT
    //compile "io.projectreactor:reactor-scala-extensions_2.13:0.7.0 //for scala 2.13
    compile "io.projectreactor:reactor-scala-extensions_2.12:0.7.0 //for scala 2.12
    //compile "io.projectreactor:reactor-scala-extensions_2.11:0.7.0 //for scala 2.11
}

With Maven:

<!-- To get latest SNAPSHOT version from Sonatype
<repositories>
    <repository>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
        <id>ossSonatypeSnapshot</id>
        <name>OSS Sonatype Snapshots</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        <layout>default</layout>
    </repository>
 </repositories>

<dependency>
    <groupId>io.projectreactor</groupId>
    <artifactId>reactor-scala-extensions</artifactId>
    <version>0.7.1-SNAPSHOT</version>
</dependency>
-->
<dependency>
    <groupId>io.projectreactor</groupId>
    <artifactId>reactor-scala-extensions_2.12</artifactId> <!-- for scala 2.12 -->
    <!--<artifactId>reactor-scala-extensions_2.11</artifactId> for scala 2.11 -->
    <!--<artifactId>reactor-scala-extensions_2.13</artifactId> for scala 2.13 -->
    <version>0.7.0</version>
</dependency>

Contributing

Contributions are welcome. Simply fork this project, make some modification, push and create a pull request.