Typed Schema

Typelevel DSL for defining webservices, convertible to akka-http/finagle and swagger definitions

License

License

GroupId

GroupId

ru.tinkoff
ArtifactId

ArtifactId

typed-schema-finagle_2.11
Last Version

Last Version

0.11.0
Release Date

Release Date

Type

Type

jar
Description

Description

Typed Schema
Typelevel DSL for defining webservices, convertible to akka-http/finagle and swagger definitions
Project URL

Project URL

https://github.com/TinkoffCreditSystems/typed-schema
Project Organization

Project Organization

ru.tinkoff
Source Code Management

Source Code Management

https://github.com/TinkoffCreditSystems/typed-schema

Download typed-schema-finagle_2.11

How to add to project

<!-- https://jarcasting.com/artifacts/ru.tinkoff/typed-schema-finagle_2.11/ -->
<dependency>
    <groupId>ru.tinkoff</groupId>
    <artifactId>typed-schema-finagle_2.11</artifactId>
    <version>0.11.0</version>
</dependency>
// https://jarcasting.com/artifacts/ru.tinkoff/typed-schema-finagle_2.11/
implementation 'ru.tinkoff:typed-schema-finagle_2.11:0.11.0'
// https://jarcasting.com/artifacts/ru.tinkoff/typed-schema-finagle_2.11/
implementation ("ru.tinkoff:typed-schema-finagle_2.11:0.11.0")
'ru.tinkoff:typed-schema-finagle_2.11:jar:0.11.0'
<dependency org="ru.tinkoff" name="typed-schema-finagle_2.11" rev="0.11.0">
  <artifact name="typed-schema-finagle_2.11" type="jar" />
</dependency>
@Grapes(
@Grab(group='ru.tinkoff', module='typed-schema-finagle_2.11', version='0.11.0')
)
libraryDependencies += "ru.tinkoff" % "typed-schema-finagle_2.11" % "0.11.0"
[ru.tinkoff/typed-schema-finagle_2.11 "0.11.0"]

Dependencies

compile (7)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.11.12
ru.tinkoff : typed-schema-typedsl_2.11 jar 0.11.0
ru.tinkoff : typed-schema-macros_2.11 jar 0.11.0
ru.tinkoff : typed-schema-param_2.11 jar 0.11.0
com.twitter : finagle-http_2.11 jar 19.10.0
org.typelevel : cats-effect_2.11 jar 2.0.0
org.typelevel : cats-free_2.11 jar 2.0.0

test (2)

Group / Artifact Type Version
org.scalacheck : scalacheck_2.11 jar 1.14.2
org.scalatest : scalatest_2.11 jar 3.0.8

Project Modules

There are no modules declared in this project.
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

Learn More on the TypedSchema Microsite

ru.tinkoff

Tinkoff.ru

Online financial ecosystem

Versions

Version
0.11.0
0.11.0-RC2
0.11.0-RC1
0.11.0-beta11
0.11.0-beta9