Need help with tofu?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

255 Stars 54 Forks Apache License 2.0 1.1K Commits 19 Opened issues


Functional programming toolbox

Services available


Need anything else?

Contributors list


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-cats-mtl
      for interop between
      and Cats MTL
  • 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-logging-log4cats
      for interop with Log4Cats
  • 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

Risk Management Solutions


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.