Popularity
6.7
Declining
Activity
8.8
Declining
570
19
78

Programming language: Scala
License: MIT License
Tags: Extensions    
Latest version: v5.13.0

Eff alternatives and similar packages

Based on the "Extensions" category.
Alternatively, view Eff alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Eff or a related project?

Add another 'Extensions' Package

README

eff

Join the chat at https://gitter.im/atnos-org/eff Maven Central

Extensible effects are an alternative to monad transformers for computing with effects in a functional way. This library is based on the "free-er" monad and extensible effects described in Oleg Kiselyov in Freer monads, more extensible effects.

You can learn more in the User Guide:

You can also check out this presentation at flatMap Oslo 2016 (slides).

Installation

Eff is published for Scala 2.12, 2.13 and 3. eff core is available for the JVM, ScalaJS and scala-native. Sbt dependency:

// check maven badge above for latest version
libraryDependencies += "org.atnos" %% "eff" % "6.0.1"

// to write types like Reader[String, *]
libraryDependencies ++= {
  if (scalaBinaryVersion.value == "3") {
    Nil
  } else {
    Seq(compilerPlugin("org.typelevel" %% "kind-projector" % "0.13.2" cross CrossVersion.full))
  }
}

scalacOptions ++= {
  if (scalaBinaryVersion.value == "3") {
    Seq("-Ykind-projector")
  } else {
    Nil
  }
}

// to get types like Reader[String, *] (with more than one type parameter) correctly inferred for scala 2.12.x
scalacOptions ++= {
  if (scalaBinaryVersion.value == "2.12") {
    Seq("-Ypartial-unification")
  } else {
    Nil
  }
}

Contributing

eff is a Typelevel project. This means we embrace pure, typeful, functional programming, and provide a safe and friendly environment for teaching, learning, and contributing as described in the Scala Code of Conduct.

Feel free to open an issue if you notice a bug, have an idea for a feature, or have a question about the code. Pull requests are also gladly accepted.

Extensions

Modules in this repository

  • [scalaz](./scalaz)
  • [monix](./monix)
  • [doobie](./doobie)
  • [twitter](./twitter) (deprecated)

External

  • eff-zio eff extension for ZIO effects.