Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

tofu-tf/typed-schema

Typelevel http service definition DSL

tofu-tf/typed-schema.json
{
"createdAt": "2018-07-30T09:57:24Z",
"defaultBranch": "master",
"description": "Typelevel http service definition DSL",
"fullName": "tofu-tf/typed-schema",
"homepage": "",
"language": "Scala",
"name": "typed-schema",
"pushedAt": "2024-08-19T21:16:00Z",
"stargazersCount": 150,
"topics": [
"akka-http",
"http-server",
"open-api-v3",
"scala",
"swagger",
"typelevel-programming"
],
"updatedAt": "2025-09-17T08:24:11Z",
"url": "https://github.com/tofu-tf/typed-schema"
}
CIRelease
Scala CIMaven Central

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.

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",
)

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