Talks and Presentations
- A sky full of streams, a talk by Jakub Kozłowski at Scala World, a conference in the Lake District in the UK, in September 2019. Slides are available on Speakerdeck.
- FS2 - Crash course, a talk by Łukasz Byczyński from Scalar in Warsaw, in April 2019. Examples are available on the author’s GitHub.
- Declarative Control Flow with fs2 Stream, a talk by Fabio Labella at the Typelevel Summit, celebrated in Boston in March 2018. Slides available at the author’s Github.
- Compose your program flow with Stream, a talk by Fabio Labella at a Klarna tech talk, sometime before March 2018.
- 2018-03-20: Compose your program flow with Stream by Fabio Labella
- FS2 Internals: Performance, a talk by Michael Pilquist at Scale by the Bay, in November 2017. Slides.
- Compositional Streaming with FS2, a talk by Michael Pilquist at Scale by the Bay, November 2016. Slides.
- Basic streams and combinators in fs2, a tutorial by Jakub Kozłowski introducing basic Stream operations and constructors.
- Sharding a stream of values using Fs2, a tutorial by Gabriel Volpe showcasing a specific use-case of fs2 streams.
- An introduction to FS2 Streams, a REPL-demo tutorial given by Michael Pilquist for the Scala Toronto Meetup group, on September 2018.
- Introduction to Functional Streams for Scala (FS2), a REPL-demo tutorial on FS2 (version 0.9), given by Michael Pilquist in May of 2016. The tutorial is split in three parts:
Blog Posts and Short Articles
- Leverage FS2 API to write to a file by David Francoeur describes writing data to files using the FS2 API.
- Scala FS2 — handle broken CSV lines by Alexey Novakov describes processing fragmented text data using FS2.
- Writing a simple Telegram bot with tagless final, http4s and fs2 by Vladimir Pavkin describes a process of writing a purely functional client for the Telegram messenger.
- Inference Driven Design, by Michael Pilquist, describes some of the tradeoffs in designing the API and the code of FS2, used to work around some of the problems in the Scala compiler.
- Tips for working with FS2, by Pere Villega,
- A streaming library with a superpower: FS2 and functional programming.
- Practical FP in Scala: A hands-on approach by Gabriel Volpe contains a section on effectful, concurrent streaming with FS2.
Related Academic Research
Related Scala Libraries
- FS2 was originally called Scalaz-Stream.
- Monix defines a special type for lazy, pull-based streaming, called
- The FP in Scala stream processing library developed for the book FP in Scala
- There are various other iteratee-style libraries for doing compositional, streaming I/O in Scala, notably the
scalaz/iterateepackage and iteratees in Play.
Related Haskell Libraries
Since Haskell is the purely functional lazily-evaluated programming language par excellance, it is no wonder that many of the ideas in FS2 were first tried and developed in there.
- Machines, a Haskell library by Ed Kmett, which spawned
- Reflex, an FRP library in Haskell, by Ryan Trinkle
- Streaming is a recent addition to Haskell streaming libraries. It represents a Stream using a
The Github page for Additional resources lists some of the references above and several older ones, mostly from the