CI | Release |
---|---|
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