dotty-cps-async VS libretto

Compare dotty-cps-async vs libretto and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
dotty-cps-async libretto
10 2
170 191
- -
9.4 9.5
7 days ago 8 days ago
Scala Scala
Apache License 2.0 Mozilla Public License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of dotty-cps-async. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-29.
  • Help a Kotlin convert back into Scala world
    7 projects | /r/scala | 29 Jan 2023
    Now in scala we have direct mode transformers: dotty-cps-async [] with cps-async-connect [ ] supports all well-knowm monad stacks, for ZIO also exists ZIO-direct [ ] , for IO - cats-effect-cps [ ], for kyo [ ] - kyo-direct.
  • dotty-cps-async 0.9.12 is out
    3 projects | /r/scala | 8 Dec 2022
  • The case against Effect Systems (e.g., the IO data type)
    2 projects | /r/scala | 18 Oct 2022
    Hmm, you can write direct-style code with monad: allows this, exists support libraries exist for near all well-known effect systems:, so you can use async/await with IO/ZIO the same as with Future. Although in IO style, any operation that mutates state is async, it's hard to write code where you should place `await` near each line. And it looks like automatic coloring is a too radical change of concepts for most functional programmers. The option to allow using <- in the direct style may be more popular, but this requires changes to the scala core. Another question - are we need effective systems to be present in each program in industrial-style development? Here I agree that mostly no.
  • dotty-cps-async 0.9.11 is out. (bugfixes and experimental loom support)
    1 project | /r/scala | 18 Sep 2022
  • dotty-cps-async 0.9.9
    1 project | /r/scala | 5 Jun 2022
  • New Scala 3 Codebases
    6 projects | /r/scala | 17 Feb 2022
  • Also dotty-cps-async 0.9.8 with scala-native support
    1 project | /r/scala | 16 Feb 2022
  • dotty-cps-async 0.9.8 with scala-native support
    1 project | /r/scala | 16 Feb 2022
  • Dotty-cps-async 0.9.7 is released.
    4 projects | /r/scala | 26 Jan 2022
    This is a generic async/await transformer for scala3 which allows using effectful monads in the direct style. URL: ( )
  • Language-assisted Flattening
    2 projects | /r/ProgrammingLanguages | 14 Jul 2021
    dotty-cps-async [rssh/dotty-cps-async ] with automatic coloring do something very similar in two steps. Automatic coloring defines implicit conversion F[A] => A as x => await(x)(m). The compiler inserts those awaits inside async blocks and then eliminates them later via cps-transform. Exists some limitations which we need to add for effect monads like IO (we don't want run effect twice and don't want to screw semantics of effects by extra memoizing). So, if your language has a possibility to implement effect monads, then you need a possibility to restrict using Flattenable.


Posts with mentions or reviews of libretto. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-15.
  • Synit – A Reactive Operating System
    2 projects | | 15 Jul 2023
    I'm not sure this is actually easy to solve. The basic idea here seems to be that actors coordinate with the help of shared mutable state (the "dataspace"). At this point you're actually back to square one as synchronizing shared state is the core problem with distributed, concurrent systems…

    Given that, and the fact that this whole thingy is untyped makes me skeptical. Not even the std. ingredients like type-state, session types, behavioral types, or the like seem to get used. I also don't see linear types here, which go very well with session types / behavioral types, and can help making typing message passing easier.

    Also that this approach would be completely network transparent, as I see it, seems like a design flaw. One needs control over the various effects that can occur! Otherwise the points form "distributed systems future work" can't be solved, imho.

    And form the practical point of view: There is no Akka / Pekko based Scala implementation? I'm quite surprised, to be honest.

    Akka / Pekko is the actor runtime, and Scala is famous for it's eDSL features; besides of course its type-system, which makes thing like Libretto possible, which seems related here:

    Syndicate-lang looks OTOH more like the usual callback-hell.

    But like I've said, I don't get this whole thingy really. I've just clicked through some parts of the web-sites. Most likely I'm just overlooking the elephant in the room. So would be glad to learn more!

    (BTW: Very nice web-site design on all the projects. Especially nice typography. Really enjoyed this part while clicking through this stuff.)

  • New Scala 3 Codebases
    6 projects | /r/scala | 17 Feb 2022

What are some alternatives?

When comparing dotty-cps-async and libretto you can also consider the following projects:

scala3-example-project - An example sbt project that compiles using Dotty

dedav4s - Declarative Data Viz 4 Scala


woof - A pure Scala 3 logging library with no reflection

scala-3-migration-guide - The Scala 3 migration guide for everyone.

sauerkraut - A reimagined scala-pickling in the Scala 3 world

Rx.NET - The Reactive Extensions for .NET

braid-spec - Working area for Braid extensions to HTTP

scala-gopher - Implementation of CSP constructions (Communication Sequence Process, i.e. go-like channels) in scala

topshell - TopShell - a purely functional, reactive scripting language

jsoniter-scala - Scala macros for compile-time generation of safe and ultra-fast JSON codecs