Expert talks delivered virtually on Nov 10 Register Here
From the creators of Akka, get technology enhancements, monitoring, and expert support with Akka Platform from Lightbend. Learn More

News & Articles

Full archive

April 24

2015

Akka Streams & Http 1.0-RC1 Released!

Dear hAkkers,

we—the Akka committers—are exceptionally proud to present the first RELEASE CANDIDATE or Akka Streams & HTTP. While this is not the end of the journey—several features are going to be added after 1.0—the time has come to declare a (very) useful subset of the intended functionality ready for public consumption. Since the last milestone we have added the following high-level features:

  • a TestKit for streams
  • proper naming for all parts of a flow topology (see .named)
  • add SslTls stage including support for session renegotiation
  • added ActorRefSink and ActorRefSource for simple Actor integration
  • data flow logging by a prepackaged combinator (see .log)
  • Source and Sink for files (using FileChannel) as well as for InputStream/OutputStream
  • HTTP client with connection pooling and idempotent request retry
  • … and (wait for it) … Websockets :-)

In addition we fixed many small things, as usual, and we also did some last renames and reorganizations in order to offer a consistent API:

  • Java functional interfaces moved to akka-actor (2.3.10, see akka.japi.function)
  • improved Java compilation error messages by adding arity to method name in flow factories
  • made OperationAttributes language-independent and also extensible, dispatcher and supervision properties moved to ActorOperationAttributes
  • removed .section in favor of .withAttributes and .via
  • moved FlattenStrategy into the Java/Scala DSLs
  • reorganized the project structure and package hierarchy of HTTP to offer consistent and equivalent Java & Scala APIs
  • relaxed method signatures to accept Graphs instead of the more specific Source/Flow/Sink types to enable free reuse of blueprints between Java & Scala
  • renamed StreamTcp to Tcp and the bind method takes interface and port parameters instead of InetSocketAddress

On the State of HTTPS

While we now have all the ingredients—SslTls and HTTP are BidiFlows that can be connected—we do not yet have nice convenience APIs for using HTTP and SSL together. This will come in one of the next releases, perhaps even before 1.0.

Things that are Known Missing

The cookbook section of the streams documentation has not yet been ported to Java, but the text of the Scala version applies to both languages. More documentation will follow in general, in particularly SslTls currently only has API docs.

The akka-http-core module is still missing the Java side of the multipart model (#15674). Working with HTTPS (client- and server-side) is not yet as easy as it will be. Additionally not all of the directives that make up the high-level server-side API in akka-http-scala have proper counterparts in akka-http-java (#16436). We will close these gaps shortly.

General Notices

The complete list of closed tickets can be found in the streams-1.0-RC1 and http-1.0-RC1 github issues milestones.

The activator templates have also been updated:

We’d like to thank all of you for testing and for providing feedback on our progress.

Credits

commits added removed
   34    5010    3277 Mathias
   22    4711     256 Johannes Rudolph
   21    2211    1326 Patrik Nordwall
   13    2921     296 Konrad Malawski
    7    2712    1506 Roland Kuhn
    5    2040     365 Endre Sándor Varga
    5    1622    1182 Martynas Mickevičius
    1       1       1 Jun

Happy hAkking!