All Projects → typelevel → Fs2

typelevel / Fs2

Licence: other
Compositional, streaming I/O library for Scala

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Fs2

Request Compose
Composable HTTP Client
Stars: ✭ 80 (-96%)
Mutual labels:  functional-programming, fp
Scalajs React
Facebook's React on Scala.JS
Stars: ✭ 1,524 (-23.72%)
Mutual labels:  functional-programming, fp
Zio Logging
Simple logging for ZIO apps, with correlation, context & pluggable backends out of the box.
Stars: ✭ 85 (-95.75%)
Mutual labels:  functional-programming, fp
Funland
Type classes for interoperability of common algebraic structures in JavaScript, TypeScript and Flow
Stars: ✭ 46 (-97.7%)
Mutual labels:  functional-programming, fp
Sup
Composable, purely functional healthchecks in Scala.
Stars: ✭ 138 (-93.09%)
Mutual labels:  functional-programming, fp
Rambda
Faster and smaller alternative to Ramda
Stars: ✭ 1,066 (-46.65%)
Mutual labels:  functional-programming, fp
Clear Config
Scala FP configuration library with a focus on runtime clarity
Stars: ✭ 108 (-94.59%)
Mutual labels:  functional-programming, fp
Bugz
🐛 Composable User Agent Detection using Ramda
Stars: ✭ 15 (-99.25%)
Mutual labels:  functional-programming, fp
Munus
Power of object-oriented programming with the elegance of functional programming in PHP.
Stars: ✭ 149 (-92.54%)
Mutual labels:  stream, functional-programming
Returns
Make your functions return something meaningful, typed, and safe!
Stars: ✭ 2,015 (+0.85%)
Mutual labels:  functional-programming, fp
Purefun
Functional Programming library for Java
Stars: ✭ 37 (-98.15%)
Mutual labels:  stream, functional-programming
Kefir
A Reactive Programming library for JavaScript
Stars: ✭ 1,769 (-11.46%)
Mutual labels:  stream, functional-programming
Stm4cats
STM monad for cats-effect
Stars: ✭ 35 (-98.25%)
Mutual labels:  functional-programming, fp
Monix
Asynchronous, Reactive Programming for Scala and Scala.js.
Stars: ✭ 1,819 (-8.96%)
Mutual labels:  functional-programming, fp
Flawless
WIP Delightful, purely functional testing no-framework. Don't even try to use it at work!
Stars: ✭ 33 (-98.35%)
Mutual labels:  functional-programming, fp
Pattern Matching Ts
⚡ Pattern Matching in Typescript
Stars: ✭ 107 (-94.64%)
Mutual labels:  functional-programming, fp
J8plus
Library containing useful tools for Java 8
Stars: ✭ 23 (-98.85%)
Mutual labels:  stream, functional-programming
D4s
Dynamo DB Database Done Scala-way
Stars: ✭ 27 (-98.65%)
Mutual labels:  functional-programming, fp
Test State
Scala Test-State.
Stars: ✭ 119 (-94.04%)
Mutual labels:  functional-programming, fp
Marble
Marble.js - functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.
Stars: ✭ 1,947 (-2.55%)
Mutual labels:  stream, functional-programming

FS2: Functional Streams for Scala

Continuous Integration Discord Maven Central

Overview

FS2 is a library for purely functional, effectful, and polymorphic stream processing library in the Scala programming language. Its design goals are compositionality, expressiveness, resource safety, and speed. The name is a modified acronym for Functional Streams for Scala (FSS, or FS2).

FS2 is available for Scala 2.12, Scala 2.13, Scala 3, and Scala.js. FS2 is built upon two major functional libraries for Scala, Cats, and Cats-Effect. Regardless of those dependencies, FS2 core types (streams and pulls) are polymorphic in the effect type (as long as it is compatible with cats-effect typeclasses), and thus FS2 can be used with other effect libraries, such as Monix.

Prior to the 0.9 release in 2016, FS2 was known as scalaz-stream, which was based on the scalaz library.

Getting Started

Quick links:

Documentation and getting help

  • There are Scaladoc API documentations for the core library, which defines and implements the core types for streams and pulls, as well as the type aliases for pipes and sinks. The io library provides FS2 bindings for NIO-based file I/O and TCP/UDP networking.
  • The official guide is a good starting point for learning more about the library.
  • The documentation page is intended to serve as a list of all references, including conference presentation recordings, academic papers, and blog posts, on the use and implementation of fs2.
  • The FAQ has frequently asked questions. Feel free to open issues or PRs with additions to the FAQ!
  • Also feel free to come discuss and ask/answer questions in the Typelevel Discord channel and/or on StackOverflow using the tag FS2. Discord will generally get you a quicker answer.

Projects using FS2

You can find a list of libraries and integrations with data stores built on top of FS2 here: https://fs2.io/#/ecosystem.

If you have a project you'd like to include in this list, please open a PR or let us know in the Discord channel and we'll add a link to it.

Acknowledgments

YourKit

Special thanks to YourKit for supporting this project's ongoing performance tuning efforts with licenses to their excellent product.

Code of Conduct

See the Code of Conduct.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].