Goal

Recently released Play 2.0 framework brings new way of creating web services
to Java community. It’s nice and fun, but I dislike few components. One of them is the router with its custom routes definitions file, separate compiler and weird logic.
As a Ruby developer I started wondering if it could be implemented in Scala as simple DSL.
The requirements were quite simple:

  • statically compiled
  • statically typed
  • easy to use
  • extensible
  • it should provide (again, statically typed) reverse router
  • use type inference as much as possible
  • do not use much parentheses