tofu-tf/typed-schema
Typelevel http service definition DSL
{ "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"}| CI | Release |
|---|---|
Welcome to Typed Schema
Section titled “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
Section titled “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
Section titled “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