Coder Social home page Coder Social logo

awesome-scala's Introduction

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.

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.