/extruder

Populate Case Classes From Any Data Source

Primary LanguageScalaMIT LicenseMIT

Extruder

Typelevel Incubator CircleCI codecov

This library uses shapeless and cats to provide a neat syntax to instantiate Scala case classes from a data source.

See the extruder microsite for detailed documentation.

Modules

Module Description Download
Extruder Main module, includes core functionality and basic resolvers. Download
Cats Effect Provides Cats Effect typeclass implementations. Download
Typesafe Config Support for resolution from Typesafe Config. Download
Circe Bridge to Circe encoding/decoding. Download
Circe YAML Bridge to Circe YAML encoding/decoding. Download
Refined Support for Refined types. Download
AWS Support for AWS types. Download
Prometheus Support for encoding data as Prometheus metrics. Download
Dropwizard Support for encoding data as Dropwizard metrics. Download
Spectator Support for encoding data as Spectator metrics. Download

Install with SBT

Add the following to your build.sbt:

libraryDependencies += "io.extruder" %% "extruder" % "0.10.0"

// only if you require support for cats-effect instances
libraryDependencies += "io.extruder" %% "extruder-cats-effect" % "0.10.0"

// only if you require support for Typesafe config
libraryDependencies += "io.extruder" %% "extruder-typesafe" % "0.10.0"

// only if you require support for Circe types
libraryDependencies += "io.extruder" %% "extruder-circe" % "0.10.0"

// only if you require support for Circe YAML
libraryDependencies += "io.extruder" %% "extruder-circe-yaml" % "0.10.0"

// only if you require support for refined types
libraryDependencies += "io.extruder" %% "extruder-refined" % "0.10.0"

// only if you require support for AWS config
libraryDependencies += "io.extruder" %% "extruder-aws" % "0.10.0"

// only if you require support for prometheus encoders
libraryDependencies += "io.extruder" %% "extruder-metrics-prometheus" % "0.10.0"

// only if you require support for dropwizard encoders
libraryDependencies += "io.extruder" %% "extruder-metrics-dropwizard" % "0.10.0"

// only if you require support for spectator encoders
libraryDependencies += "io.extruder" %% "extruder-metrics-spectator" % "0.10.0"

Participation

This project supports the Typelevel code of conduct and aims that its channels (mailing list, Gitter, github, etc.) to be welcoming environments for everyone.