Skip to content

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

License

Notifications You must be signed in to change notification settings

betehess/awesome-scala

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 

Repository files navigation

Awesome Scala

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

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

Web 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.
  • 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

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.

JSON Manipulation

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

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.
  • Saddle - A minimalist port of Pandas to Scala
  • Squants - The Scala API for Quantities, Units of Measure and Dimensional Analysis

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.
  • Scrunch - A Scala wrapper for Apache Crunch which provides a framework for writing, testing, and running MapReduce pipelines.

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.
  • Scala Async - An asynchronous programming facility 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.
  • Android SDK Plugin for SBT - A sbt plugin that adds tasks for developing Android applications.

HTTP

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.

Semantic Web

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.

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. Do not submit a project, which hasn't been updated in the past 6 months or is not awesome.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published