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

ZIO GitHub: zio/zio, Maven : dev.zio.

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.