/awesome-scala

A curated list of awesome Scala frameworks, libraries and software.

Apache License 2.0Apache-2.0

Awesome Scala

A curated list of awesome Scala frameworks, libraries and software. Inspired by awesome-python.

Database

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.

Frameworks

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.

Authentication

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.

Testing

Libraries for code testing.

  • ScalaCheck - Property-based testing for Scala.
  • ScalaTest - A testing tool for Scala and Java developers.
  • Specs2 - Software Specifications for Scala.

Science and Data Analysis

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.

Big Data

  • 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 and Dependency Injection

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.

Extensions

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.

Android

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.

Contributing

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.