Skip to content
GitWiki edited this page Nov 30, 2015 · 12 revisions

Rho: A DSL for building HTTP services with http4s

/// src_inlined SimplePath core/src/test/scala/org/http4s/rhotest/ApiExamples.scala
      new RhoService {
        GET / "hello" |>> { () => Ok("Hello, world!") }
      }
/// end_src_inlined

What distinguishes rho from the http4s-core dsl?

  • The http4s-core dsl defines routes in terms of partial functions using pattern matching extractors while rho uses a set of 'rules' to match and extract information from the request.
  • Rho maintains meta data such as the names of extracted parameters and their types which can be reused for tasks such as generation of Swagger documentation.
  • Rho routing is implemented as an efficient tree structure as opposed to a linear search.

How does rho compare other Scala http frameworks?

  • Rho is similar in intention to the red-eyes project: maintaining metadata.
  • Rho route definition feels similar to Finch and Scalatra.
Clone this wiki locally