Projects

Our projects cover a wide range of domains, from general functional programming to tooling.

argonaut-shapeless

Automatic derivation for argonaut

Typelevel Affiliate Project

banana-rdf

RDF, SPARQL and Linked Data technologies

Typelevel Affiliate Project

case-insensitive

A case-insensitive string for Scala

Typelevel Organization Project

catbird

Cats instances for various Twitter Open Source Scala projects

Typelevel Organization Project

Cats

A library intended to provide abstractions for functional programming in Scala, leveraging its unique features. Design goals are approachability, modularity, documentation and efficiency.

Functional Programming

Typelevel Organization Project

Cats Collections

Data structures that facilitate pure functional programming with cats

Typelevel Organization Project

Cats-Effect

The IO Monad for Scala, plus type classes for general effect types.

Typelevel Organization Project

Cats MTL

Monad transformers made easy

Typelevel Organization Project

cats-parse

A parsing library for the cats ecosystem

Typelevel Organization Project

cats-scalatest

Scalatest bindings for Cats.

Typelevel Affiliate Project

Cats Tagless

A library of utilities for tagless final algebras

Typelevel Organization Project

Cats-Time

Instances for Cats Typeclasses for Java 8 Time

Typelevel Organization Project

Ciris

Functional Configurations for Scala

Typelevel Affiliate Project

coulomb

A statically typed unit analysis library for Scala

Typelevel Affiliate Project

cron4s

Cross-platform CRON expression parsing for Scala

Typelevel Affiliate Project

decline

A composable command-line parser for Scala.

Command-line parsing

Typelevel Affiliate Project

discipline

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.

Flexible law checking

Typelevel Organization Project

doobie

A pure functional JDBC layer for Scala. It is not an ORM, nor is it a relational algebra; it just provides a principled way to construct programs (and higher-level libraries) that use JDBC.

Principled database access

Typelevel Affiliate Project

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 an “open union” of effects described by Oleg Kiselyov in “Freer monads, more extensible effects”

effects

Typelevel Affiliate Project

Extruder

Populate case classes from any configuration source

Typelevel Affiliate Project

fabric

Object-Notation Abstraction for JSON, binary, HOCON, etc.

JSON Library

Typelevel Organization Project

Fetch

Library built on top of Cats that provides efficient data access from heterogeneous dataurces

Typelevel Affiliate Project

Finch

Purely functional basic blocks atop of Finagle for building composable HTTP APIs

Typelevel Affiliate Project

Frameless

Frameless is a library for working with Spark using more expressive types.

Typeful Spark

Typelevel Organization Project

fs2-data

Parse and transform data (CBOR, CSV, JSON, XML) in a streaming manner

Stream Processing

Typelevel Affiliate Project

fs2-grpc

gRPC implementation for FS2/cats-effect

Typelevel Organization Project

fs2

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).

Stream Processing

Typelevel Organization Project

Hammock

Purely functional HTTP client

Typelevel Affiliate Project

http4s

A typeful, purely functional HTTP library for client and server applications

Typelevel Affiliate Project

imp

Summoning implicit values

Typelevel Affiliate Project

jawn-fs2

Integration of jawn and fs2 for streaming, incremental JSON parsing

Typelevel Organization Project

keypool

A Keyed Pool Implementation for Scala

Typelevel Organization Project

kind-projector

Plugin for nicer type-lambda syntax

Typelevel Organization Project

Kittens

Automatic type class derivation

Typelevel Affiliate Project

Libra

Compile time dimensional analysis for any problem domain

Typelevel Affiliate Project

log4cats

Logging Tools For Interaction with cats-effect

Typelevel Organization Project

Monix

High-performance library for composing asynchronous, event-based programs, exposing a Reactive Streams implementation along with primitives for dealing with concurrency and side-effects.

Asynchronous, Reactive Programming

Typelevel Affiliate Project

Monocle

Strongly inspired by Haskell's lens library, Monocle is an Optics library where Optics gather the concepts of Lens, Traversal, Optional, Prism and Iso.

Lenses for Scala

Typelevel Affiliate Project

Mouse

Enrichments to standard library classes to ease functional programming

Typelevel Organization Project

otel4s

An OpenTelemetry library based on cats-effect

Typelevel Organization Project

Outwatch

The Functional and Reactive Web-Frontend Library for Scala.js

Typelevel Affiliate Project

parsley-cats

The parsley-cats library exposes Cats instances for Parsley parsing library.

Typelevel Affiliate Project

PureConfig

A boilerplate-free library for loading configuration files

Typelevel Affiliate Project

refined

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.

Constraints on types

Typelevel Affiliate Project

ScalaCheck

ScalaCheck is a library for automated property-based testing. It contains generators for randomized test data and combinators for properties.

Property checking

Typelevel Organization Project

scalacheck-shapeless

Automatic derivation for ScalaCheck

Typelevel Affiliate Project

Scala Exercises

Platform and framework for Scala devs to learn about Scala libraries

Typelevel Affiliate Project

scala-steward

A robot that helps keeping Scala projects up-to-date

Typelevel Affiliate Project

scodec

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.

Binary serialization

Typelevel Affiliate Project

Scoverage

Code coverage tool for Scala

Typelevel Affiliate Project

Shapeless

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.

Generic Programming

Typelevel Affiliate Project

simulacrum

First-class syntax for type classes

Typelevel Affiliate Project

Simulacrum Scalafix

Simulacrum as Scalafix rules

Typelevel Organization Project

singleton-ops

Operations for primitive and String singleton types

Typelevel Affiliate Project

sonic

Property-based testing with integrated shrinking

Typelevel Affiliate Project

specs2

specs2 is a library for writing executable software specifications, aiming for conciseness, readability and extensibility.

Expressive specifications

Typelevel Affiliate Project

spire

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.

Numeric abstractions

Typelevel Affiliate Project

Squants

The Scala API for Quantities, Units of Measure and Dimensional Analysis

Typelevel Affiliate Project

TwoTails

A compiler plugin adding support for mutual tail recursion

Typelevel Affiliate Project

typelevel.g8

A Giter8 template for sbt-typelevel

Typelevel Organization Project

typelevel-nix

Development tools for Typelevel projects

Typelevel Organization Project

uniform-scala

Functional user journeys

Typelevel Affiliate Project

vault

Type-safe, persistent storage for values of arbitrary types

Typelevel Organization Project

Submitting

Are you interested in submitting your library to the Typelevel Ecosystem?

Open a ticket!