Skip to content
/ typed-schema Public archive
forked from tofu-tf/typed-schema

Typelevel http service definition DSL

License

Notifications You must be signed in to change notification settings

Tinkoff/typed-schema

 
 

Repository files navigation

CI Release
Scala CI Maven Central

Welcome to Typed Schema

Typed schema is an http service definition DSL, currently translating to akka-http Routes and OpenApi 3.0 definition inspired by the haskell-servant library.

Getting started

Typed Schema is published to Maven Central and cross-built for Scala 2.12 and 2.13 so you can just add the following to your build:

libraryDependencies ++= List(
  "ru.tinkoff" %% "typed-schema-swagger" % "latest version in badge",
  "ru.tinkoff" %% "typed-schema-finagle-zio" % "latest version in badge",
  "ru.tinkoff" %% "typed-schema-finagle-custom" % "latest version in badge",
)

or

libraryDependencies ++= List(
  "ru.tinkoff" %% "typed-schema-swagger"        % "latest version in badge",
  "ru.tinkoff" %% "typed-schema-finagle-env"    % "latest version in badge",
  "ru.tinkoff" %% "typed-schema-finagle-custom" % "latest version in badge",
)

or

libraryDependencies ++= List(
  "ru.tinkoff" %% "typed-schema-swagger"   % "latest version in badge",
  "ru.tinkoff" %% "typed-schema-akka-http" % "latest version in badge",
)

Motivation

We the People building services using modern scala often struggling to satisfy following requirements

  • Service implementation should be checked to be compatible with OpenApi 3.0 specifications at the compile time
  • Service definition should be detachable from the implementation and exportable as mere specification
  • There should be an easy way to migrate all the services to different effect\future\task implementation without changing any definition
  • There should be some way to migrate all the service to another framework without reimplementing them

About

Typelevel http service definition DSL

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Scala 100.0%