Integrations¶
dotty-cps-async itself provides type classes for monads, available without external dependencies: this is FutureAsyncMonad
, JVM-only Java CompletableFuture
and JS-only js.Promise
and JSFuture
.
Third-party effect stacks are provided in external modules.
rssh/cps-async-connect¶
GitHub project: https://github.com/rssh/cps-async-connect
Cats Effect¶
Add dependency cps-async-connect-cats-effect
to your build.sbt
to integrate Cats Effect :
libraryDependencies += "org.typelevel" %% "cats-effect" % catsEffectVersion libraryDependencies += "com.github.rssh" %%% "cps-async-connect-cats-effect" % cpsAsyncConnectVersion
For loom-based invocation of HO arguments on JDK-21+ also add cps-async-connect-cats-effect-loom artifact.
libraryDependencies += "com.github.rssh" %%% "cps-async-connect-cats-effect-loom" % cpsAsyncConnectVersion
Cats Effect GitHub : typelevel/cats-effect
, Maven : org.typelevel»cats-effect
.
Note: Typelevel’s project cats-effect-cps
also provides async/await syntax support for Cats Effect.
Monix¶
Add dependency cps-async-connect-monix
to your build.sbt
to integrate Monix :
libraryDependencies += "io.monix" %% "monix" % "3.4.1" libraryDependencies += "com.github.rssh" %%% "cps-async-connect-monix" % cpsAsyncConnectVersion
Monix GitHub : monix/monix
, Maven : io.monix
.
Scalaz IO¶
Add dependency cps-async-connect-scalaz
to your build.sbt
to integrate Scalaz IO:
libraryDependencies += "org.scalaz" %% "scalaz-core" % "7.4.0-M12" libraryDependencies += "org.scalaz" %% "scalaz-effect" % "7.4.0-M12" libraryDependencies += "com.github.rssh" %%% "cps-async-connect-scalaz" % cpsAsyncConnectVersion
Scalaz IO GitHub : scalaz/scalaz
, Maven : org.scalaz
.
ZIO and ZIO Streams¶
Add dependency cps-async-connect-zio
to your build.sbt
to integrate ZIO :
For 1.0.x series:
libraryDependencies += "dev.zio" %% "zio" % zio1Version libraryDependencies += "com.github.rssh" %%% "cps-async-connect-zio" % cpsAsyncConnectVersion
For 2.0.x series:
libraryDependencies += "dev.zio" %% "zio" % zio2Version libraryDependencies += "com.github.rssh" %% "cps-async-connect-zio2" % cpsAsyncConnectVersion
Akka Stream¶
Add dependency cps-async-connect-akka-stream
to your build.sbt
to integrate Lightbend’s Akka Stream :
libraryDependencies += "com.typesafe.akka" %% "akka-stream" % akkaVersion libraryDependencies += "com.github.rssh" %%% "cps-async-connect-akka-stream" % cpsAsyncConnectVersion
Akka Stream GitHub : akka/akka
, Maven : com.typesafe.akka»akka-stream
.
FS2 Stream¶
Add dependency cps-async-connect-fs2
to your build.sbt
to integrate Typelevel’s FS2 :
libraryDependencies += "co.fs2" %% "fs2-core" % fs2Version libraryDependencies += "co.fs2" %% "fs2-io" % fs2Version libraryDependencies += "com.github.rssh" %%% "cps-async-connect-fs2" % cpsAsyncConnectVersion
FS2 GitHub : typelevel/fs2
, Maven : co.fs2
.
Probability Monad¶
Add dependency cps-async-connect-probability-monad
to your build.sbt
.
typelevel/cats-effect-cps¶
GitHub project: https://github.com/typelevel/cats-effect-cps
cats-effect-cps
is an experimental library to support uniform async/await syntax for Cats Effect in Scala 2 and Scala 3, integrated with the Typelevel ecosystem.
Call for additions:¶
If you have implemented CpsMonad
support for some effect stack and want to mention it here - please, send a pull request about this.