A community driven list of useful Scala libraries, frameworks and software. This is not a catalog of all the libraries, just a starting point for your explorations. Inspired by awesome-python.
Database access libraries in Scala.
- ScalikeJDBC - A tidy SQL-based DB access library for Scala developers.
- Slick - Modern database query and access library for Scala.
- Squeryl - A Scala DSL for talking with databases with minimum verbosity and maximum type safety.
- Activate - Pluggable object persistence in Scala.
- Scala ActiveRecord - ORM library for scala, inspired by ActiveRecord of Ruby on Rails.
- PostgreSQL and MySQL async - Async database drivers to talk to PostgreSQL and MySQL in Scala.
- ReactiveMongo - Reactive Scala Driver for MongoDB.
- Phantom - Async type safe Scala DSL for Apache Cassandra
Scala frameworks for web development.
- Play - Makes it easy to build scalable, fast and real-time web applications with Java & Scala.
- Skinny Framework - A full-stack web app framework upon Scalatra for rapid Development in Scala.
- Scalatra - Tiny Scala high-performance, async web framework, inspired by Sinatra.
- Spray - A suite of scala libraries for building and consuming RESTful web services on top of Akka.
- Finatra - A sinatra-inspired web framework for scala, running on top of Finagle.
- Reactive - FRP and web abstractions, which can be plugged into any web framework (currently only has bindings for Lift)
- Chaos - A lightweight framework for writing REST services in Scala
Libraries for implementing authentications schemes.
- scala-oauth2-provider - OAuth 2.0 server-side implementation written in Scala.
- SecureSocial - A module that provides OAuth, OAuth2 and OpenID authentication for Play Framework applications.
- play2-auth - Play2.x Authentication and Authorization module.
Libraries for code testing.
- ScalaCheck - Property-based testing for Scala.
- ScalaTest - A testing tool for Scala and Java developers.
- Specs2 - Software Specifications for Scala.
Libraries for work with json.
- json4s - Project aims to provide a single AST to be used by other scala json libraries.
- spray-json - Lightweight, clean and efficient JSON implementation in Scala.
- argonaut - Purely Functional JSON in Scala.
- jackson-module-scala - Add-on module for Jackson to support Scala-specific datatypes
Libraries for scientific computing, data analysis and numerical processing.
- Breeze - Breeze is a numerical processing library for Scala.
- MLLib - Machine Learning framework for Spark
- Spire - Powerful new number types and numeric abstractions for Scala.
- Algebird - Abstract Algebra for Scala.
- FACTORIE - A toolkit for deployable probabilistic modeling, implemented as a software library in Scala.
- Saddle - A minimalist port of Pandas to Scala
- Squants - The Scala API for Quantities, Units of Measure and Dimensional Analysis
- Spark - Lightning fast cluster computing - up to 100x faster than Hadoop for iterative algorithms (memory caching) and up to 10x faster than Hadoop for single-pass MapReduce jobs. Compatible with YARN-enabled Hadoop clusters, can run on Mesos and in stand-alone mode as well.
- Scalding - A Scala binding for the Cascading abstraction of Hadoop MapReduce.
- Summingbird - An implementation of the "lambda architecture" as a software abstraction - a single API for Hadoop and Storm.
- Scrunch - A Scala wrapper for Apache Crunch which provides a framework for writing, testing, and running MapReduce pipelines.
Modularization of applications, dependency injection, etc.
- Domino - Write elegant OSGi bundle activators in Scala.
- Scaldi - Lightweight Scala Dependency Injection Library.
- MacWire - Scala Macro to generate wiring code for class instantiation. DI container replacement.
- SubCut - Scala Uniquely Bound Classes Under Traits.
Scala extensions.
- Scalaz - An extension to the core Scala library for functional programming.
- Shapeless - A type class and dependent type based generic programming library for Scala.
- Scala Async - An asynchronous programming facility for Scala.
Scala libraries and wrappers for Android development.
- Scaloid - Less painful Android development with Scala.
- Macroid - A modular functional UI language for Android.
- Android SDK Plugin for SBT - A sbt plugin that adds tasks for developing Android applications.
Scala libraries and wrappers for HTTP clients.
- Dispatch - Library for asynchronous HTTP interaction. It provides a Scala vocabulary for Java’s async-http-client.
- Scalaxb - An XML data-binding tool for Scala that supports W3C XML Schema (xsd) and Web Services Description Language (wsdl) as the input file.
- Spray - Actors-based library for http interaction.
Scala libraries for interactions with the Web of Data, and other RDF tools
- Banana-RDF - Scala-friendly abstractions for RDF and Linked Data technologies. Supports Jena, Sesame and native Scala.
Your contributions are always welcome! Please submit a pull request or create an issue to add a new framework, library or software to the list. Do not submit a project, which hasn't been updated in the past 6 months or is not awesome.