Spray, Akka-http and Play, Which is the best bet for a new HTTP/REST project

Spray is production ready, but the development team (Mathias Doenitz) works for Typesafe on Akka-http now.

The status of Akka-http is “development preview”. There are vague promises of a full release “within a few months”, but nothing you can take to the bank.

Edited 29-July-2015:

The status of Akka-HTTP is now “release candidate” with version 1.0 RC4.
Its functionality is largely competing with spray.io, and the common expectation is that spray.io will lose it’s development momentum.
At this time I would not recommend spray.io for new projects anymore.

Jonas Boner from Typesafe has referred to Akka-http as “Spray 2.0”. So don’t expect any future versions of Spray and at some point you’ll have to make the switch. I saw Jonas’ Akka-http presentation at Scala Days and it looks like porting Spray code to Akka-http should be straight forward as the DSL is mostly unchanged (even though the underlying implementation of the library will be different).

To answer your questions specifically: Spray is finished as a separate project, it is being imported into Akka under the name Akka-http (not a merge as Akka didn’t have any equivalent before hand). If you need to start development now go with Spray, if you can afford to work with the inevitable bugs in a preview release go with Akka-http. Your Spray code will never stop working, but it won’t be supported either outside of minor bug fixes. All new functionality will be added in Akka-http, so instead of updating to Spray 2.0 you update to Akka-http.

Leave a Comment