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

Fede picture Fede · Mar 24, 2015 · Viewed 20.9k times · Source

I'm going to develop new HTTP/REST services using Scala and Akka Actors.

I have experience working with Play, but I don't really need a complete web Framework. From what I read, I think Spray is a suitable choice. My question come from the future of Spray after the new arrived AKKA-HTTP.

Does the Spray project will grow independently from the Akka-HTTP project, or are the two project going to be merged into one Akka-HTTTP?

What is the impact of this if I start developing with Spray? Also I read that Play will integrate AKKA-HTTP. So I finally wonder if a should not go with Play?

Thanks for your help.

Answer

Gangstead picture Gangstead · Mar 24, 2015

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.