Scala-async is a macro for simplifying the use of futures. This talk presents an extension of scala-async which additionally enables writing producers and consumers of asynchronous streams using familiar straight-line, blocking-style code while using efficient non-blocking, event-based concurrency under the hood. Building on the Reactive Streams standard enables integrating with many stream-based Scala libraries and frameworks. The second part of the talk shows how OpenJDK Project Loom fibers can be used to implement extended scala-async without the use of Scala’s deprecated macro system.
Associate Professor in the School of Electrical Engineering and Computer Science at KTH Royal Institute of Technology in Stockholm, Sweden.