by TinkoffCreditSystems

TinkoffCreditSystems / tofu

Functional programming toolbox

229 Stars 50 Forks Last release: about 1 month ago (0.8.0) Apache License 2.0 940 Commits 27 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


Functional programming toolkit aimed at taming the complexity of Tagless Final approach.

| CI | Release | Chat | | --- | --- | --- | | Scala CI | Maven Central | Discord Chat

Quick Start

see the docs on the microsite

To use the whole utils pack just add to your

libraryDependencies += "ru.tinkoff" %% "tofu" % "latest version in badge"

Of course, you can also specify an exact list of

modules that you want to add to your dependencies (used in place of
  • tofu-core
    for core utils
  • tofu-core-higher-kind
    for higher kinded utils
  • tofu-concurrent
    for concurrent utils
  • tofu-config
    for config utils
  • tofu-data
    for data utils
  • tofu-derivation
    for derivation utils and derevo annotations
  • tofu-doobie
    for Doobie utils
  • tofu-enums
    for Enumeratum utils
  • tofu-env
    (a variation of a Reader Monad based on Monix Task)
  • tofu-fs2-interop
    for interop with fs2
  • tofu-streams
    for streaming utils
  • tofu-logging
    for the whole set of logging utils (derivation, layout, structured, util, interop)
    • tofu-logging-derivation
      for logging derivation only
    • tofu-logging-layout
      for logging layout only
    • tofu-logging-structured
      for logging structured only
    • tofu-logging-util
      for logging util only
    • tofu-logging-refined
      for interop between tofu-logging and Refined
    • tofu-logging-shapeless
      for interop between tofu-logging and Shapeless tag
  • tofu-memo
    for caching utils
  • tofu-observable
  • tofu-optics-core
    for optics core (Optics typeclasses)
  • tofu-optics-interop
    for optics interop with Monocle
  • tofu-optics-macro
    for macro optics generators
  • tofu-zio-interop
    for interop with ZIO (core, logging)
    • tofu-zio-core
      for ZIO instances only
    • tofu-zio-logging
      for ZIO logging only


Proud user of ToFu? Feel free to add your company!

Raiffeisen Bank Russia


Please note we use the following labels for automated release descriptions: *

if your PR does not change any types and runtime semantics *
if 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.


Copyright the maintainers, 2020

Logos made with love by @impurepics

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.