tagless-final VS FS2

Compare tagless-final vs FS2 and see what are their differences.


[Moved to: https://github.com/DevInsideYou/tagless-final] (by devinsideyou)


Compositional, streaming I/O library for Scala (by typelevel)
Our great sponsors
  • OPS - Build and Run Open Source Unikernels
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • Scout APM - Less time debugging, more time building
tagless-final FS2
1 8
29 2,006
- 1.1%
0.0 9.9
about 1 year ago 4 days ago
Scala Scala
- GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of tagless-final. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-02-16.


Posts with mentions or reviews of FS2. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-07-11.
  • How to update and access state that needs to be shared across multiple API endpoints with FP?
    1 project | reddit.com/r/scala | 14 Jan 2022
    Another more reactive solution would to use signals, as in FPR sinal network. fs2 implements this very nicely here https://github.com/typelevel/fs2/blob/8b285a6b54c63d43ed6aa3bb91365652035c90e5/core/shared/src/main/scala/fs2/concurrent/Signal.scala
  • Introducing effects systems S.A. ZIO at work?
    1 project | reddit.com/r/scala | 23 Aug 2021
    Assuming the bug mentioned here is https://github.com/typelevel/fs2/issues/2568, we came up with a partial fix in a day (https://github.com/typelevel/fs2/pull/2569) and a complete fix in 2 days: https://github.com/typelevel/fs2/pull/2572. Note the original bug was opened on a Saturday. :)
  • ScalablyTyped publishes Scala 3 support
    2 projects | reddit.com/r/scala | 11 Jul 2021
    As of very recently, we're using ScalablyTyped in our fs2-io cross build for node. https://github.com/typelevel/fs2/pull/2453
  • Improving akka http code
    3 projects | reddit.com/r/scala | 23 Jun 2021
    In that case, it's best to keep different streaming libraries separate, in their own little "worlds". fs2 + cats has Queues for this purpose https://fs2.io/#/concurrency-primitives. Future has the Promise abstraction.
  • Learning FS2
    1 project | reddit.com/r/scala | 20 May 2021
    So far I'm aware of a great documentation that is out there (fs2.io) and some resources (https://fs2.io/#/documentation).
  • Scala 3 is here!
    2 projects | reddit.com/r/programming | 14 May 2021
    ScalaZ was changed to cats-effect. For streaming, look at fs2. Cats-effect 3 cleans up a lot of the library, but as with any code it can be clean or messy depending on the dev
  • [FS2] - Mutability of Queue in Stream
    1 project | reddit.com/r/scala | 4 Apr 2021
    Lets decompose this code from the article a little. The definition of circularBuffer indicates that given a buffer size the function will return G[Queue[F, A]]. https://github.com/typelevel/fs2/blob/19bb74cac3c9b51bc5419b70fed224d24e0e1c2e/core/shared/src/main/scala/fs2/concurrent/Queue.scala#L173-L174 G is some higher kinded type with an implementation of the Sync typeclass (https://github.com/typelevel/fs2/blob/19bb74cac3c9b51bc5419b70fed224d24e0e1c2e/core/shared/src/main/scala/fs2/concurrent/Queue.scala#L152) (a typeclass for suspending synchronous actions). Why is G needed? Well Queue's are asynchronous data structures so some concurrency primitives must be allocated like Ref and Deferred. (https://typelevel.org/cats-effect/docs/std/ref).
  • Example of building web apis (functionally) in Scala
    12 projects | reddit.com/r/scala | 16 Feb 2021
    Watch the talk "Streams - Your New Favorite Primitive" by Ryan Peters (aka sloshy) and then looking into the docs of fs2. - This one to learn one of the most used / useful libraries of the typelevel ecosystem to process data.

What are some alternatives?

When comparing tagless-final and FS2 you can also consider the following projects:

cats-effect - The pure asynchronous runtime for Scala


Http4s - A minimal, idiomatic Scala interface for HTTP

ScalaMeter - Microbenchmarking and performance regression testing framework for the JVM platform.

Mockito Scala - Mockito for Scala language

Gatling - Modern Load Testing as Code

Scala Test-State - Scala Test-State.

ScalaTest - A testing tool for Scala and Java developers

ScalaMock - Native Scala mocking framework

Minitest - The super light testing library for Scala and Scala.js

ScalaCheck - Property-based testing for Scala

scalaprops - property based testing library for Scala