Reactor-Scala-Extensions alternatives and similar packages
Based on the "Functional Reactive Programming" category.
Alternatively, view Reactor-Scala-Extensions alternatives based on common mentions on social networks and blogs.
-
Vert.x
Vert.x is a tool-kit for building reactive applications on the JVM -
ZIO
ZIO โ A type-safe, composable library for async and concurrent programming in Scala -
Monix
Asynchronous, Reactive Programming for Scala and Scala.js. -
Scala.Rx
An experimental library for Functional Reactive Programming in Scala -
RxScala
RxScala โ Reactive Extensions for Scala โ a library for composing asynchronous and event-based programs using observable sequences -
SynapseGrid
SynapseGrid is a framework for constructing dynamic low latency data flow systems. -
REScala
REScala - distributed and reactive programming embedded in OO and FP programs. -
Reactive Collections
A concurrent reactive programming framework.
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Reactor-Scala-Extensions or a related project?
README
Reactor Scala Extensions
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.