endpoints 0.9.0


endpoints is a Scala library for defining communication protocols over HTTP between applications.

Noteworthy features:

  • endpoints descriptions are first-class Scala values, which can be reused, combined and abstracted over ;
  • a same endpoint description can be interpreted in multiple ways:
    • a client implementation (JVM and/or Scala.js),
    • a server implementation,
    • an OpenAPI definition file,
    • thus, your client and documentation are always consistent with the actual implementation of your server,
  • type safety: you get a compile-time error if you invoke an endpoint but supply incorrect data (requests are guaranteed to be well constructed),
  • extensibility: you can introduce both
    • new descriptions that are specific to your application (e.g. the usage of a particular HTTP header),
    • new interpreters for endpoint descriptions (e.g. generation of a RAML documentation),
  • vanilla Scala: being written in pure Scala (no macros), the implementation is easy to reason about and IDE friendly.

Getting started


See the Github repository.