Menu

Libraries

Let the Scala compiler work for you. We provide type classes, instances, conversions, testing, supplements to the standard library, and much more.

Functional Programming

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

Extensions and companions for Cats

Dogs
Functional data structures
Alleycats
Lawless classes & illegal instances
Kittens
Automatic type class derivation
Generic Programming

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.

Extensions and companions for Shapeless

argonaut-shapeless
Automatic derivation for argonaut
scalacheck-shapeless
Automatic derivation for ScalaCheck
spray-json-shapeless
Automatic derivation for spray-json
shapeless-contrib
Various bindings for third-party libraries
Numeric abstractions

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.

Incubator Projects

Newly joined projects
banana-rdf
RDF, SPARQL and Linked Data technologies
cats-scalatest
Scalatest bindings for Cats.
delta
Type-safe, generic diffing of data
eff
Extensible effects for Scala
Fetch
Library built on top of Cats that provides efficient data access from heterogeneous datasources
Finch
Purely functional basic blocks atop of Finagle for building composable HTTP APIs
Frameless
Expressive types for Spark
http4s
A typeful, purely functional HTTP library for client and server applications
Matryoshka
Generalized recursion schemes and traversals for Scala
Monix
High-performance asynchronous and event-based programming
Mouse
Small companion library to cats providing enrichments to std lib classes to ease functional programming and/or ease source compatibility with scalaz
Scala Exercises
Platform and framework for Scala devs to learn about Scala libraries
Scoverage
Code coverage tool for Scala
Squants
The Scala API for Quantities, Units of Measure and Dimensional Analysis
TwoTails
A compiler plugin adding support for mutual tail recursion

Macros and Compiler Plugins

Extending the language
export-hook
Support for expanding implicit scope
imp
Summoning implicit values
kind-projector
Plugin for nicer type-lambda syntax
local-implicits
Plugin for locally-scoped implicit values
machinist
Zero-cost operator enrichment
macro-compat
Cross-version macro support
simulacrum
First-class syntax for type classes