Giter VIP home page Giter VIP logo

awesome-scala's Introduction

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.
  • PostgreSQL and MySQL async - async database drivers to talk to PostgreSQL and MySQL in Scala.

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

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.
  • Saddle - A minimalist port of Pandas to 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.
  • 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.

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.

awesome-scala's People

Contributors

lauris avatar flicken avatar mkolod avatar fntz avatar nafg avatar dwiechert avatar discipe avatar jacksingleton avatar jbripley avatar mauricio avatar wheaties avatar dckcode avatar 0xroch avatar skyr avatar

Watchers

 avatar  avatar

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.