core

Opinionated set of tools for functional programming in Scala

License

License

GroupId

GroupId

ru.tinkoff
ArtifactId

ArtifactId

tofu-core_2.12
Last Version

Last Version

0.9.2
Release Date

Release Date

Type

Type

jar
Description

Description

core
Opinionated set of tools for functional programming in Scala
Project URL

Project URL

https://github.com/TinkoffCreditSystems/tofu
Project Organization

Project Organization

ru.tinkoff
Source Code Management

Source Code Management

https://github.com/TinkoffCreditSystems/tofu

Download tofu-core_2.12

How to add to project

<!-- https://jarcasting.com/artifacts/ru.tinkoff/tofu-core_2.12/ -->
<dependency>
    <groupId>ru.tinkoff</groupId>
    <artifactId>tofu-core_2.12</artifactId>
    <version>0.9.2</version>
</dependency>
// https://jarcasting.com/artifacts/ru.tinkoff/tofu-core_2.12/
implementation 'ru.tinkoff:tofu-core_2.12:0.9.2'
// https://jarcasting.com/artifacts/ru.tinkoff/tofu-core_2.12/
implementation ("ru.tinkoff:tofu-core_2.12:0.9.2")
'ru.tinkoff:tofu-core_2.12:jar:0.9.2'
<dependency org="ru.tinkoff" name="tofu-core_2.12" rev="0.9.2">
  <artifact name="tofu-core_2.12" type="jar" />
</dependency>
@Grapes(
@Grab(group='ru.tinkoff', module='tofu-core_2.12', version='0.9.2')
)
libraryDependencies += "ru.tinkoff" % "tofu-core_2.12" % "0.9.2"
[ru.tinkoff/tofu-core_2.12 "0.9.2"]

Dependencies

compile (7)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.12.13
ru.tinkoff : tofu-optics-core_2.12 jar 0.9.2
ru.tinkoff : tofu-core-higher-kind_2.12 jar 0.9.2
org.scala-lang.modules : scala-collection-compat_2.12 jar 2.4.1
org.typelevel : cats-core_2.12 jar 2.4.1
org.typelevel : cats-effect_2.12 jar 2.3.1
org.typelevel : cats-tagless-macros_2.12 jar 0.12

provided (1)

Group / Artifact Type Version
org.scala-lang : scala-reflect jar 2.12.13

test (1)

Group / Artifact Type Version
org.scalatest : scalatest_2.12 jar 3.2.3

Project Modules

There are no modules declared in this project.

ToFu

Build & Release Maven Central Discord Chat Scala Steward badge

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

Quick Start

see the docs on the microsite

To use the whole utils pack just add to your build.sbt:

libraryDependencies += "tf.tofu" %% "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, 2019-2021

Logos made with love by @impurepics

ru.tinkoff

Tinkoff.ru

Online financial ecosystem

Versions

Version
0.9.2
0.9.1
0.9.0
0.8.0
0.7.10
0.7.9
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2.1
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.7.2
0.5.7.1
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1.1
0.5.0
0.4.0
0.3.0
0.2.0
0.1.1
0.1