/rho

A self documenting DSL built on http4s

Primary LanguageScalaOtherNOASSERTION

ρ: A DSL for building HTTP services with http4s

CI Maven Central Gitter

val httpService = new RhoRoutes[IO] {
   GET / "hello" / 'world +? param[Int]("fav") |>> { (world: String, fav: Int) => 
     Ok(s"Received $fav, $world") 
   }
}

See the tutorial, wiki and the tests for more examples.

Get more from your route definitions

The primary goal of ρ is to provide an easy to use AST with which to build HTTP services which can be inspected to extract a variety of information including:

Get ρ

Rho artifacts are available at Maven Central and snapshots are available from the Sonatype repositories.

Read the Rho Scaladocs

resolvers += Resolver.sonatypeRepo("snapshots")  // Only if you are using a -snapshot version

libraryDependencies += "org.http4s" %% "rho-swagger" % version

Stability

ρ remains a work in progress. However, it is now approaching a point where things are beginning to stabilize. Going forward changes to the api should will come more slowly and have deprecation period.

Contributing

Contributions of all kinds are welcome! Documentation contributions are especially useful for others who are also just learning to use ρ. The wiki and the tests are the primary source of documentation. Pull requests are greatly appreciated from their original authors, licensed to the http4s project under the project's open source license.

License

ρ is licensed under the terms of the Apache 2.0 license. See the license file in the base directory for more information.