Functional programming toolkit by Tinkoff scala team 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 the exact subproject that you wanna add to yours dependencies (used in place of "tofu"
):
tofu-core
for core (Main core)tofu-memo
for memo (Caching utils)tofu-env
for env (Some variation of a Reader Monad)tofu-parallel
for parallel (Parallel utils)tofu-concurrent
for concurrent (Concurrent utils)tofu-optics-core
for optics core (Optics typeclasses)tofu-optics-interop
for optics interop with Monocletofu-optics-macro
for macro optics generatorstofu-data
for data utilstofu-logging
for the whole set of logging utils (derivation, layout, structured)tofu-logging-derivation
for logging derivation onlytofu-logging-structured
for logging structured onlytofu-logging-layout
for logging layout onlytofu-observable
for observabletofu-enums
for enums (Enumeratum utils)
Copyright the maintainers, 2019
Logos made with love by @impurepics
Please note we use following labels for automated release descriptions:
chore
if your PR does not change any types and runtime semanticsfix
if your PR merely fixes incorrect behavior
We have automated check for style conformance. You can run sbt fmt
before PR.
If you have any trouble during this check, just run sbt fmt
and commit again.