Check out the Typelevel ecosystem by platform!
The projects below support all three platforms. Share code and deploy to browsers and Node.js, native binaries, and the JVM!
A case-insensitive string for Scala
js / jvm / native
A library intended to provide abstractions for functional programming in Scala, leveraging its unique features. Design goals are approachability, modularity, documentation and efficiency.
js / jvm / native
Data structures that facilitate pure functional programming with cats
js / jvm / native
The IO Monad for Scala, plus type classes for general effect types.
js / jvm / native
Monad transformers made easy
js / jvm / native
A parsing library for the cats ecosystem
js / jvm / native
A STM implementation for Cats Effect
js / jvm / native
A library of utilities for tagless final algebras
js / jvm / native
Instances for Cats Typeclasses for Java 8 Time
js / jvm / native
Yet another JSON library for Scala
js / jvm / native
Functional Configurations for Scala
js / jvm / native
A statically typed unit analysis library for Scala
js / jvm / native
A composable command-line parser for Scala.
js / jvm / native
Originally intended for internal use in spire, this library helps libraries declaring type classes to precisely state the laws which instances need to satisfy, and takes care of not checking derived laws multiple times.
js / jvm / native
Event-driven automata for Scala, Scala.js and scala native. This library provides purely functional state machines that can be used to create event sourced and/or CQRS style applications. It also includes production ready backends.
js / jvm / native
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 an “open union” of effects described by Oleg Kiselyov in “Freer monads, more extensible effects”
js / jvm / native
Object-Notation Abstraction for JSON, binary, HOCON, etc.
js / jvm / native
Parse and transform data (CBOR, CSV, JSON, XML) in a streaming manner
js / jvm / native
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).
js / jvm / native
Functional GraphQL server for the Typelevel stack
js / jvm / native
A typeful, purely functional HTTP library for client and server applications
js / jvm / native
Integration of jawn and fs2 for streaming, incremental JSON parsing
js / jvm / native
A Keyed Pool Implementation for Scala
js / jvm / native
Automatic type class derivation
js / jvm / native
Purely functional, non-blocking RabbitMQ client for scala, scala js and scala native built on top of fs2.
js / jvm / native
Compile time validation of literal values built from strings
js / jvm / native
Logging Tools For Interaction with cats-effect
js / jvm / native
Optics library offering a simple yet powerful API to access and transform immutable data
js / jvm / native
Enrichments to standard library classes to ease functional programming
js / jvm / native
functional tracing for cats
js / jvm / native
An OpenTelemetry library based on cats-effect
js / jvm / native
The parsley-cats library exposes Cats instances for Parsley parsing library.
js / jvm / native
Tools for refining types with type-level predicates which constrain the set of values described by the refined type, for example restricting to positive or negative numbers.
js / jvm / native
ScalaCheck is a library for automated property-based testing. It contains generators for randomized test data and combinators for properties.
js / jvm / native
Automatic derivation for ScalaCheck
js / jvm / native
scodec is a combinator library for working with binary data. It focuses on contract-first and pure functional encoding and decoding of binary data and provides integration with shapeless.
js / jvm / native
Code coverage tool for Scala
js / jvm / native
Shapeless is a generic programming library. Starting with implementations of Scrap your boilerplate and higher rank polymorphism in Scala, it quickly grew to provide advanced abstract tools like heterogenous lists and automatic instance derivation for type classes.
js / jvm / native
First-class syntax for type classes
js / jvm / native
A data access library for Scala + Postgres
js / jvm / native
specs2 is a library for writing executable software specifications, aiming for conciseness, readability and extensibility.
js / jvm / native
Spire is a numeric library for Scala which is intended to be generic, fast, and precise. Using features such as specialization, macros, type classes, and implicits, Spire works hard to defy conventional wisdom around performance and precision trade-offs.
js / jvm / native
The Scala API for Quantities, Units of Measure and Dimensional Analysis
js / jvm / native
Micro-library for building effectful protocols
js / jvm / native
Development tools for Typelevel projects
js / jvm / native
A purely functional, interval based rate limiter
js / jvm / native
Type-safe, persistent storage for values of arbitrary types
js / jvm / native