Trail is a routing library for Scala. It is available for the JVM, Scala.js and Scala Native.
- Define type-safe routes
- Parse and generate URLs
- DSL to extract path elements, arguments and fragments
- Express routing tables via pattern matching
- Define custom codecs
- IDE support
- Cross-platform support (JVM, Scala.js, Scala Native)
- Zero dependencies
import trail._
val details = Root / "details" / Arg[Int]
val userInfo = Root / "user" / Arg[String] & Param[Boolean]("show")
val result = "/user/hello?show=false" match {
case details (a) => s"details: $a"
case userInfo((u, s)) => s"user: $u, show: $s"
}
Trail is licensed under the terms of the Apache v2.0 licence.
- Tim Nieradzik
- Darren Gibson
- Anatolii Kmetiuk