Let the Scala compiler work for you. We provide type classes, instances, conversions, testing, supplements to the standard library, and much more.Get started
Purely functional JSON. Argonaut is a JSON library for Scala, providing a rich library for parsing, printing and manipulation as well as convenient codecs for translation to and from scala data types.
Flexible law checking. 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.
Property checking. ScalaCheck is a library for automated property-based testing. It contains generators for randomized test data and combinators for properties.
Functional programming. Scalaz is a Scala library for functional programming. It provides purely functional data structures and defines a set of foundational type classes (e.g. Functor and Monad) and corresponding instances for a large number of types.
Stream processing scalaz-stream is a streaming I/O library. The design goals are compositionality, expressiveness, resource safety, and speed. The design is meant to supercede or replace older iteratee or iteratee-style libraries.
Binary serialization. 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 into scalaz and shapeless.
Generic programming. Shapeless is an 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.
Expressive specifications. specs2 is a library for writing executable software specifications, aiming for conciseness, readability and extensibility.
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 allow developers to write efficient numeric code without having to »bake in« particular numeric representations.
Little helpers. To make your life even easier, we tried to keep the dependencies between the projects to a minimum. If you choose to combine some libraries, we provide convenient helpers to reduce interoperability boilerplate in your code.
Extending the compiler. We provide some experimental compiler plugins to scrap some more boilerplate and help you adhere to certain coding standards.