The Virtual Void A blog by Johannes Rudolph

Open Source Work

Here’s a selection of open source work I’ve done during the years.

Major Projects


I worked on akka-http for several years. A large part of the work consisted of rewriting spray’s core engine on top of akka-stream. We were also quite involved into building the first prototype of akka-stream itself and did some work for the Reactive Streams Initiative.

I was responsible for implementing the Websocket and HTTP/2 protocol in akka-http and creating large parts of the Java API.

As part of the spray team I was also previously involved in building Akka IO, Akka’s networking component in 2013.


spray is the predecessor of akka-http, and is a high-performance HTTP library.

As part of the spray team I worked on its performance and on smallish things all around the code base. A large amount of time also went into supporting users on spray’s mailing list.


A Java agent that allows to profile Java programs using the powerful Linux perf tools. Together with Brendan Gregg’s framegraph it makes for a powerful but non-intrusive profiling tool.

It was prominently featured in a Netflix Blog entry by Brendan Gregg.


A library to query and update JSON data structures based on the functional programming concept of lenses.

Scala Infrastructure Projects


An sbt plugin to analyze the external dependencies of an sbt project. It was originally created out of the need to help a customer which had grown quite a codebase and needed to understand what they were actually depending on.


A developer productivity sbt plugin which allows to run and recompile services in the background.


An sbt plugin to create boilerplate Scala code from templates. Used in spray, akka and other libraries.


An sbt plugin that helps plugin authors to create plugins that are compatible with several sbt versions.


An experiment in doing static code analysis with Scala macros to speed up common Scala collections idioms.


An experiment in providing new syntactic forms in Scala with a compiler plugin.

Other contributions

Smallish contributions to chromium, Android’s dalvik, scalac, sbt, gnome-do.

Some (mostly trivial) clarifications I made for the zstd spec also made it into RFC 8878.