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