Functional programming toolkit aimed at taming the complexity of Tagless Final approach.
| CI | Release | Chat |
|---|---|---|
To use the whole utils pack just add to your build.sbt:
libraryDependencies += "ru.tinkoff" %% "tofu" % "latest version in badge"Of course, you can also specify an exact list of tofu modules that you want to add to your dependencies (used in place
of "tofu"):
tofu-corefor core utilstofu-core-higher-kindfor higher kinded utilstofu-concurrentfor concurrent utilstofu-configfor config utilstofu-datafor data utilstofu-derivationfor derivation utils and derevo annotationstofu-doobiefor Doobie utilstofu-enumsfor Enumeratum utilstofu-envforEnv(a variation of a Reader Monad based on Monix Task)tofu-fs2-interopfor interop with fs2tofu-loggingfor the whole set of logging utils (derivation, layout, structured, util, interop)tofu-logging-derivationfor logging derivation onlytofu-logging-layoutfor logging layout onlytofu-logging-structuredfor logging structured onlytofu-logging-utilfor logging util onlytofu-logging-refinedfor interop between tofu-logging and Refinedtofu-logging-shapelessfor interop between tofu-logging and Shapeless tag
tofu-memofor caching utilstofu-observableformonix.reactive.Observableutilstofu-optics-corefor optics core (Optics typeclasses)tofu-optics-interopfor optics interop with Monocletofu-optics-macrofor macro optics generatorstofu-zio-interopfor interop with ZIO (core, logging)tofu-zio-corefor ZIO instances onlytofu-zio-loggingfor ZIO logging only
Copyright the maintainers, 2020
Logos made with love by @impurepics
Please note we use the following labels for automated release descriptions:
choreif your PR does not change any types and runtime semanticsfixif your PR merely fixes incorrect behavior
We have an automated check for style conformance. You can run sbt checkfmt before PR.
If you have any trouble during this check, just run sbt fmt and commit again.