Up to release 1.0/1.1-M7 the spray-io module provided a low-level network I/O layer for directly connecting Akka actors to asynchronous Java NIO sockets. Since then the spray and Akka teams have joined forces to build upon the work in spray and come up with an extended and improved implementation, which lives directly in Akka as of Akka 2.2.

Over time more and more things that were previously provided by spray-io (e.g. the pipelining infrastructure and the SSL/TLS support) have found their way, in an improved form, from the spray codebase into the Akka codebase, so that spray’s own IO module will cease to exist in the near future.

For spray 1.0 and 1.1 the spray-io module contains a direct back-port of the new Akka-I/O infrastructure from Akka 2.2 to Akka 2.0 and Akka 2.1 (respectively). This means that users of Akka 2.0 and Akka 2.1 can enjoy the benefits of the new I/O layer even without upgrading by simply including spray-io as a dependency.

All documentation for the new I/O layer can be found in the docs to Akka 2.2, namely:


Apart from the Scala library (see Current Versions chapter) spray-io only depends on spray-util and akka-actor (with ‘provided’ scope, i.e. you need to pull it in yourself).


The Maven Repository chapter contains all the info about how to pull spray-io into your classpath. Just as in Akka 2.2 all the (backported) components of the new I/O layer live in the akka.actor.io package.