A curated list of awesome Scala frameworks, libraries and software. 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.
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.
- Lift - Secure and powerful full stack web framework.
- 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.
- Blue Eyes - A lightweight Web 3.0 framework for Scala, featuring a purely asynchronous architecture, extremely high-performance, massive scalability, high usability, and a functional, composable design.
- Reactive - FRP and web abstractions, which can be plugged into any web framework (currently only has bindings for Lift)
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.
- jerkson - a Scala wrapper for Jackson
- 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.
- scala_prob - Scala embedded probabilistic programing library using delimited continuations (VERY Experimental).
- probability-monad - Probability Distribution Monad in Scala.
- 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.
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 libraries and wrappers for Android development.
- Scaloid - Less painful Android development with Scala.
- Macroid - A modular functional UI language for Android.
- sbt-android-plugin - A sbt plugin for Android development in 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.