Scala libraries

Scala libraries

Whenever I come I across a Scala library I take a note of it here. This collection is neither complete nor have I used all of these libraries. It is mainly used as a point of reference if I want to find some functionality implemented in a Scala library.

AI

bloom-filter-scala an efficient bloom filter for Scala doc

neuroflow lightweight library to construct, sketch, train and evaluate Artificial Neural Networks

ThoughtWorksInc/DeepLearning.scala A DSL for creating complex neural networks

Akka

hseeberger/akka-sse Server Sent Events for Akka HTTP

ktoso/akka-raft toy project implementing RAFT on top of Akka Cluster (not prod ready)

strongtyped/fun-cqrs small library for building CQRS application using Scala in combination with Akka. (fun-cqrs-devoxx-demo )

paypal/squbs Akka/Spray for Large-Scale Production Deployments http://paypal.github.io/squbs

nokia/akka-typed-persistence This library implements actor persistence for Akka Typed with event sourcing.

scalapenos/stamina serialization toolkit written specifically for use with Akka Persistence.

krasserm/streamz A combinator library for integrating Functional Streams for Scala (FS), Akka Streams and Apache Camel

Android

macroid modular functional UI language for Android

Blog

szeiger/ornate tool for building multi-page HTML sites from Markdown sources

Cache

scredis non-blocking, ultra-fast Scala Redis client built on top of Akka IO.

Koboshi resilient caching of any configuration/resources from an unreliable source

caffeine high-performance Java 8 based caching library providing a near optimal hit rate.

scalacache#caffeine facade for the most popular cache implementations, with a simple, idiomatic Scala API.

Collections

non/chain wrapper for fast concatenation/iteration.

Compiler plugins

kind-projector Compiler plugin for making type lambdas (type projections) easier to write

TwoTails Scala compiler plugin for mutual tail recursion

sbt-dotty plugin to build your application using dotty with Sbt support

miniboxing/ildl-plugin The ildl-plugin is a meta-programming technique aimed at allowing safe, custom transformations across library boundaries.

Config

ficus Scala-friendly companion to Typesafe config

pureconfig boilerplate-free library for loading configuration files

SHocon simple pure Scala implementation of the HOCON specification

ccadllc/cedi-config Provides a safe API for parsing settings objects out of Typesafe Config.

Converters

Verizon/delorean correct and stable conversions between Task and Future

Databases

tpolecat/doobie principled database access for scala

Mongo

julienrf/reactivemongo-derived-codecs Compared to the ReactiveMongo’s macros, this project brings support for sealed traits ,recursive types

Kafka

vectos/scala-kafka Kafka driver written in pure Scala.

cakesolutions/scala-kafka-client thin Scala wrapper over the official Apache Kafka Java Driver

Postgres

finagle/roc A Modern Finagle-Postgresql Client http://finagle.github.io/roc/docs/

Slick

slick-pg Slick extensions for PostgreSQL

slickless Shapeless HList support for Slick.

slickdroid android backend for Slick

active-slick CRUD operations for Slick 3.x projects

unicorn small Slick library for type-safe id handling

Graph

twitter/cassovary simple big graph processing library for the JVM

Dependency Injection

zalando/grafter a library to configure and wire Scala applications

Functional Programming

typelevel/cats Lightweight, modular, and extensible library for functional programming. http://typelevel.org/cats/

hamsters mini Scala utility library that supports Validation, OK/KO Monads, Monad transformers, HLists, Union types

latr Scala macro for reasonable lazy semantics (evaluation is delayed and memoized)

mouse small companion to cats. Mouse includes enrichments for Boolean, Option, String

stew/dogs data structures for pure functional programming in scala. see the completely incomplete documentation website:https://stew.github.io/dogs

travisbrown/catbird Birds and cats together http://catbird.io This project provides cats type class instances (and other useful cats-related stuff) for various Twitter Open Source Scala projects.

Lenses

quicklens modify deeply nested case class fields

Monocle Optics library for Scala http://julien-truffaut.github.io/Monocle/

jeremyrsmith/patchless Patch data type for Scala and shapeless (Technically not a lens, but sort of !)

Monad Stack

atnos-org/eff Extensible effects are an alternative to monad transformers for computing with effects in a functional way. 

Typeclasses

Defining typeclasses

mpilquist/simulacrum first class syntax support for type classes in Scala

Providing instances of typeclasses

milessabin/export-hook minimal infrastructure for type class providers to support the inclusion of derived, subclass and other orphan instances in their implicit scope.

Using typeclasses

mpilquist/local-implicits: Scala compiler plugin which provides syntax for working with locally declared implicit values

Performance typeclasses runtime (imp-machinist)

non/imp macro for summoning implicit values

typelevel/machinist spire’s macros for zero-cost operator enrichment

Combining all the above

typelevel/typeclassic integration (or merge) simulacrummachinistimpexport-hook, and possibly other projects.

In From Simulacrum to Typeclassic, Michael Pilquist explains all these libraries.

Free Monads

ProjectSeptemberInc/freek a freaky simple Free to combine your DSL seamlessly

aecor/liberator The goal of this library is to generate everything you need to create programs using Free monad, without boilerplate.

Json

propensive/rapture json library is the ultimate Scala JSON library. It doesn’t really do anything with JSON itself, instead, it abstracts over the following JSON libraries (which it calls backends)

MediaMath/scala-json Compile-time JSON marshaling and abstraction for Scala and Scala.js

aishfenton/Argus Builds models from JSON Schemas

fthomas/crjdt A conflict-free replicated JSON datatype (CRDT) in Scala https://fthomas.github.io/crjdt/

circe/circe Yet another JSON library for Scala https://circe.github.io/circe/

JWT

jwt-scala Scala support for JSON Web Token

Html

ScalaTags small, fast XML/HTML/CSS construction library for Scala

Scalate Scala Template Engine

beard lightweight logicless templating engine, written in Scala and inspired by Mustache

Http

julienrf/endpoints Scala library to define HTTP endpoints

scalaj-http simple Scala wrapper for HttpURLConnection. OAuth included.

eed3si9n/gigahorse an HTTP client for Scala with Async Http Client undernieth.

finagle/finch Scala combinator library for building Finagle HTTP services https://gitter.im/finagle/finch

Internationalization

ICU International Components for Unicode

scalingua simple gettext-like internationalization (aka i18n) library for Scala

Logging

Verizon/journal fast, simple, Scala library for logging, based on SLF4J.

twitter/distributedlog. high performance replicated log service

Machine Learning

Aerosolve A machine learning package built for humans.

anskarl/LoMRF open-source implementation of Markov Logic Networks.

Serialization

msgpack/msgpack-scala An implementation of MessagePack for Scala.

Services

getclump/clump A library for expressive and efficient service composition

Spark

adelbertc/frameless Expressive types for Spark.

Static Analysis

findbugs4sbt static code analysis via FindBugs from within SBT

sbt-findbugs Sbt plugin for running FindBugs on Java classes

wartremover flexible Scala code linting tool

Sbt plugins

sbt-updates Sbt plugin that can check maven repositories for dependency updates

sbt-dependency-graph Sbt plugin to create a dependency graph for your project

sbt/sbt-doge Sbt plugin to aggregate tasks across subprojects and their crossScalaVersions

sbt-release release plugin for Sbt (>= 0.11.0)

sbt-tojar an Sbt plugin that enables straight-to-jar compilation of Scala files

sbt-swagger Sbt plugin for extracting Swagger & JAX-RS (jsr311) annotations from compiled classes into Swagger API models, which are then serialized to JSON for consumption with swagger-ui.

sbt-git the sbt-git plugin offers git command line features directly inside Sbt as well as allowing other plugins to make use of git.

Scalafmt opinionated code formatter for Scala

tpolecat/tut very simple documentation tool for Scala that reads Markdown files and interprets Scala code in tut sheds

Verizon/sbt-rig Common build and release steps for SBT projects

ThoughtWorksInc/implicit-dependent-type a Scala compiler plugin that resolves dependent types from implicit type classes, especially useful when working with shapeless or other type-level programming libraries.

alexarchambault/coursier Pure Scala Artifact Fetching- dependency management

Verizon/sbt-blockade Warn or ban particular dependencies in a build to prevent usage.

scalafix - a Scala rewrite tool : Scalafix is a new tool to help Scala 2.x compile with Dotty.

tek/splain better implicit errors for scala

flywaydb Evolve your Database Schema easily and reliably across all your instances

Scala Clippy : syntax highlighting in the Scala compiler output!

Skeletons

Scala Bootstrap (base / project skeleton) This is a repository intended to serve as a starting point if you want to bootstrap a project in Scala. It could be useful if you want to start from scratch a kata or a little exercise or project. 

Play 2.5 compile-time DI skeleton

lloydmeta/ctdi-play.g8 Compile-time DI Play template

CodelyTV/scala_bootstrap Scala Bootstrap (base / project skeleton)

Testing

ScalaMeter automate your performance testing today.

cornichon  an extensible Scala DSL for testing JSON HTTP APIs.

manub/scalatest-embedded-kafka library that provides an in-memory Kafka broker to run your ScalaTest specs against. It uses Kafka 0.10.0.0 and ZooKeeper 3.4.7.

other

reftree automatic object tree diagrams for immutable data

fthomas/refined library for refining types with type-level predicates which constrain the set of values described by the refined type. http://refined.timepit.eu

ScalaBlitz lightning-fast Scala collections framework

julienrf/enum yet another enumeration toolbox for Scala, powered by shapeless.

cvogt/cbt: CBT - fun, fast, intuitive, compositional, statically checked builds written in Scala

squants the Scala API for Quantities, Units of Measure and Dimensional Analysis

Atomic References Low-level concurrency tools for Scala with equivalents for Scala.js.

scala-rainbow simple terminal output colorizing for Scala

fetch is especially useful when querying data that has a latency cost doc

cvogt/scala-extensions Useful extensions for the Scala standard library

wookietreiber/sbt-scaliterate generates Scala source code from a *programming book* written in  Markdown.

reftree automatic object tree diagrams for immutable data

Verizon/delorean Convert Task to Future, and Future to Task

More resources

lauris/awesome-scala community driven list of useful Scala libraries, frameworks and software.

akullpp/awesome-java A curated list of awesome Java frameworks, libraries and software.