we—the Akka committers—are proud to announce the SECOND RELEASE CANDIDATE for the upcoming release of Akka 2.4.2. The main change in the upcoming Akka 2.4.2 release is that it includes Streams & HTTP, with the akka-stream, akka-stream-testkit, akka-parsing, and akka-http-core modules no longer being marked “experimental”. In comparison to Streams & HTTP 2.0 the main changes are:
- significant performance improvement for HTTP handling, now reaching roughly 75% of Spray’s performance—this is not the end of the performance work, we have only just begun
- replacement of all uses of the Unit type (represented as BoxedUnit in Java) with the more descriptive types akka.Done (for signaling successful completion) and akka.NotUsed (for materialization results of stages that do not produce a value)
- usage of Java 8 types in the Java DSLs: java.util.Optional instead of scala.Option and java.util.concurrent.CompletionStage instead of scala.concurrent.Future
Especially the second and third point mean that porting code from Streams & HTTP 2.0 to Akka 2.4.2 will require some mechanical source code changes, please refer to the migration guide for the details.
Closed issues since the RC1 can be found here.
Note that there still are known bugs in RC2, for a full list see here
We intend to release version 2.4.2 as soon as we are confident that it is reasonably bug free and the documentation is top notch as well: we are aware that the getting started experience for Streams & HTTP is not perfect in places and there are some features that are entirely missing—stay tuned for updates and please let us know of anything you find to be suboptimal.
Akka 2.4.x is backwards binary compatible with previous 2.3.x versions (exceptions listed below). This means that the new JARs are a drop-in replacement for the old one (but not the other way around) as long as your build does not enable the inliner (Scala-only restriction). It should be noted that Scala 2.11.x is is not binary compatible with Scala 2.10.x, which means that Akka’s binary compatibility property only holds between versions that were built for a given Scala version—akka-actor_2.11-2.4.2-RC1.jar is compatible with akka-actor_2.11-2.3.14.jar but not with akka-actor_2.10-2.3.14.jar.
Binary compatibility is not maintained for the following:
- akka-testkit, akka-multi-node-testkit and akka-persistence-tck
- experimental modules:
- features, classes, methods that were deprecated in 2.3.0 or earlier and removed in 2.4.x
Thanks to the Community! For this release we had the help of 12 committers.
commits added removed 9 943 175 Johan Andrén 2 38 11 Roland Kuhn 2 133 133 Martynas Mickevičius 2 43 67 Viktor Klang 2 17 9 Endre Sándor Varga 1 147 33 adebski 1 1 1 Jan Ypma 1 14 8 Otto Chrons 1 6 7 Denis Mikhaylov 1 0 1 Arnout Engelen 1 7 6 Brian Topping 1 2 2 naferx
– The Akka Team