Kebs

screenshot of Kebs

Scala library to eliminate boilerplate

Overview:

The KebsScala library is designed to eliminate common sources of Scala boilerplate code. It provides support for various Scala libraries and frameworks such as Slick, Doobie, Spray JSON, Play JSON, Circe, Akka HTTP, Pekko HTTP, http4s, and more. KebsScala aims to automate the generation of code that would otherwise require manual implementation, making development more efficient and reducing boilerplate code.

Features:

  • Support for Slick: Generates slick mappers for case class wrappers automatically.
  • Support for Doobie: Simplifies mapping generation for Doobie database access library.
  • Support for Spray JSON: Provides automatic mapping generation for Spray JSON library.
  • Support for Play JSON: Streamlines mapping generation for Play JSON library.
  • Support for Circe: Automates mapping generation for Circe JSON library.
  • Support for Akka HTTP: Simplifies mapping generation for Akka HTTP framework.
  • Support for Pecco HTTP: Provides automatic mapping generation for Pecco HTTP library.
  • Support for http4s: Streamlines mapping generation for http4s library.
  • Support for Tagged Types: Offers support for tagged types in Scala.
  • Support for JSON Schema: Provides automatic code generation for JSON Schema.
  • Support for ScalaCheck: Simplifies mapping generation for ScalaCheck property-based testing framework.
  • Support for Enumeratum: Automates mapping generation for Enumeratum enumeration library.
  • Support for ValueEnums: Provides support for mapping generation for ValueEnums.

SBT:

For Slick:

libraryDependencies += "pl.iterators" %% "kebs-slick" % "1.9.7"

For Doobie:

libraryDependencies += "pl.iterators" %% "kebs-doobie" % "1.9.7"

For Spray JSON:

libraryDependencies += "pl.iterators" %% "kebs-spray-json" % "1.9.7"

For Play JSON:

libraryDependencies += "pl.iterators" %% "kebs-play-json" % "1.9.7"

For Circe:

libraryDependencies += "pl.iterators" %% "kebs-circe" % "1.9.7"

For JSON Schema:

libraryDependencies += "pl.iterators" %% "kebs-jsonschema" % "1.9.7"

For ScalaCheck:

libraryDependencies += "pl.iterators" %% "kebs-scalacheck" % "1.9.7"

For Akka HTTP:

libraryDependencies += "pl.iterators" %% "kebs-akka-http" % "1.9.7"

For Pecco HTTP:

libraryDependencies += "pl.iterators" %% "kebs-pekko-http" % "1.9.7"

For http4s:

libraryDependencies += "pl.iterators" %% "kebs-http4s" % "1.9.7"

For tagged types support:

libraryDependencies += "pl.iterators" %% "kebs-tagged" % "1.9.7"

For tagged-types code generation support:

libraryDependencies += "pl.iterators" %% "kebs-tagged-meta" % "1.9.7"
addCompilerPlugin("org.scalameta" % "paradise" % "3.0.0-M11" cross CrossVersion.full)

For instances support:

libraryDependencies += "pl.iterators" %% "kebs-instances" % "1.9.7"

Please note that builds for Scala 2.12 and 2.13 are provided.

Summary:

KebsScala is a powerful library that eliminates boilerplate code in Scala by automating mapping generation for various libraries and frameworks. It offers support for popular tools such as Slick, Doobie, Spray JSON, Play JSON, Circe, Akka HTTP, and more. By using KebsScala, developers can save time and effort by avoiding manual implementation of common mapping tasks.