Eff alternatives and similar packages
Based on the "Extensions" category.
Alternatively, view Eff alternatives based on common mentions on social networks and blogs.
-
Twitter Util
General-purpose Scala libraries, including a future implementation and other concurrency tools. -
better-files
Simple, safe and intuitive Scala I/O. better-files is a dependency-free pragmatic thin Scala wrapper around Java NIO. -
Cassovary
A Scala library that is designed from the ground up for space efficiency, handling graphs with billions of nodes and edges. -
Enumeratum
A macro to replace Scala enumerations with a sealed family of case objects. This allows additional checks for the compiler, e.g. for missing cases in a match statement. Has additinal support for Json libraries and the Play framework. -
Scala Graph
A Scala library with basic graph functionality that seamlessly fits into the Scala standard collections library. -
Hamsters
A mini Scala utility library. Compatible with functional programming beginners. Featuring validation, monad transformers, HLists, Union types. -
scribe
Practical logging framework that doesn't depend on any other logging framework and can be completely configured programmatically. -
Scala Blitz
A library to speed up Scala collection operations by removing runtime overheads during compilation, and a custom data-parallel operation runtime. -
Freedsl
A library to implement composable side effects, weaving typeclasses on a wrapping type and the free monad. -
Resolvable
A library to optimize fetching immutable data structures from several endpoints in several formats.
Get performance insights in less than 4 minutes
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of Eff or a related project?
README
eff
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:
- your first effects
- included effects:
Reader
,Writer
,Eval
,State
,... - create your own effects
- use Member implicits
- working with different effect stacks
- a tutorial similar to the cats' tutorial for Free monads
You can also check out this presentation at flatMap Oslo 2016 (slides).
Installation
Eff is published for Scala 2.12 and 2.13. eff
core is available for the JVM and ScalaJS. Sbt dependency:
// check maven badge above for latest version
libraryDependencies += "org.atnos" %% "eff" % "5.13.0"
// to write types like Reader[String, *]
addCompilerPlugin("org.typelevel" %% "kind-projector" % "0.11.2" cross CrossVersion.full)
// to get types like Reader[String, *] (with more than one type parameter) correctly inferred for scala 2.12.x
scalacOptions += "-Ypartial-unification"
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.