Tapir is a declarative, type-safe web endpoints library, written in Scala. The endpoints can be interpreted as a server (integrating with akka http, http4s, play, finatra, vertx and others), as a client (using sttp client) or as openapi / asyncapi documentation.
The tapir source code is available on GitHub. Usage documentation is also available.
Tapir endpoints are described as values, using a Scala API. Thanks to Scala's type system, a number of properties are checked at compile-time.