Scala framework for a Rest API Server? [closed]

We are thinking on moving our Rest API Server (it is inside the web service, on Symfony PHP) to Scala for several reasons: speed, no overhead, less CPU, less code, scalability, etc. I didn't know Scala until several days ago but I've been enjoying what I've been learning these days with the Scala book and all the blog posts and questions (it's not so ugly!)

I have the following options:

  • build the Rest API Server from scratch
  • use a tiny Scala web framework like Scalatra
  • use Lift

Some things that I will have to use: HTTP requests, JSON output, MySQL (data), OAuth, Memcache (cache), Logs, File uploads, Stats (maybe Redis).

What would you recommend?


In no particular order:

  • Akka HTTP
  • Spray
  • Paypal squbs (Akka/Spray)
  • DropWizard
  • REST.li
  • http4s
  • Blue Eyes
  • Finagle - A fault tolerant, protocol-agnostic RPC system
  • Play! and Play-mini! (article) (tutorial)
  • Lift / Lift JSON.- makes it simple to provide REST services.

I'm going to recommend Unfiltered. It's an idiomatic Web framework that does things "the Scala way" and is very beautiful.


Take a look at Xitrum (I'm its author), it provides everything you listed. Its doc is quite extensive. From README:

Xitrum is an async and clustered Scala web framework and web server on top of Netty and Hazelcast:

  • Annotation is used for URL routes, in the spirit of JAX-RS. You don't have to declare all routes in a single place.
  • Async, in the spirit of Netty.
  • Sessions can be stored in cookies or clustered Hazelcast.
  • In-process and clustered cache, you don't need separate cache servers.
  • In-process and clustered Comet, you don't need a separate Comet server.