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

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

Description

Functional programming toolbox

Services available

!
?

Need anything else?

Contributors list

ToFu

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

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-core
    for core utils
    • tofu-core-cats-mtl
      for interop between
      tofu-core
      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
    for
    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
    for
    monix.reactive.Observable
    utils
  • 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

Adopters

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

Raiffeisen Bank Russia

Risk Management Solutions

Contributing

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

chore
if your PR does not change any types and runtime semantics *
fix
if your PR merely fixes incorrect behavior

Formatting

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

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.