We are happy to announce the 10.2.0-RC2 release of Akka HTTP. This release is the second release candidate leading up to version 10.2.0 of Akka HTTP.
For the RC2, we wanted to deprecate a few more APIs which led to some tricky compatibility issues. Therefore, we took the opportunity to introduce a new server binding API (although late in the release cycle) to be able to realize a few more API improvements (especially on the Java side) that would otherwise have been hold back by those compatibility issues.
10.2.0 is now feature-complete, and we will only merge documentation and cosmetic changes going forward, with the final release of 10.2.0 planned for August.
Notably new in this RC are
- a new server binding API (see below)
- more support and usage of the new message attributes
- some performance optimizations in the client pool
- some other smaller changes
Please see the detailed change log on the documentation site and the migration guide for a full account of the upcoming changes.
Please take Akka HTTP 10.2.0-RC2 for a spin to iron out the last remaining issues before the final release.
Here’s a bit more information about the new server APIs:
Better integration with Akka 2.6 using the new server API entrypoints
Making changes to support Akka 2.6 better, we realized that the existing server API is sometimes awkward to use and to evolve. Therefore, we took the opportunity to come up with a new ServerBuilder API that provides a way to bind servers more concisely, especially from Java.
Existing Java code for binding a server like this:
// only worked with classic actor system akka.actor.ActorSystem system = akka.actor.ActorSystem.create("TheSystem"); Materializer mat = ActorMaterializer.create(system); Route route = get(() -> complete("Hello World!")); Http.get(system).bindAndHandle(route.flow(system), ConnectHttp.toHost("localhost", 8080), mat);
can now be written as:
// works with classic or typed actor system akka.actor.typed.ActorSystem system = akka.actor.typed.ActorSystem.create(Behaviors.empty(), "TheSystem"); // or // akka.actor.ActorSystem system = akka.actor.ActorSystem.create("TheSystem"); // materializer not needed any more Route route = get(() -> complete("Hello World!")); Http.get(system).newServerAt("localhost", 8080).bind(route);
For Scala users, we strive to release a scalafix rule for the final release of Akka Http 10.2.0 to make the transition as painless as possible.
For this release we had the help of 3 contributors – thank you all very much!
commits added removed 38 2232 1240 Johannes Rudolph 13 1189 451 Arnout Engelen 5 264 130 Enno
The Akka core team is employed by Lightbend. If you’re looking to take your Akka systems to the next level, let’s set up a time to discuss our enterprise-grade expert support, self-paced education courses, and technology enhancements that help you manage, monitor and secure your Akka system from development to production.
– The Akka Team