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. Other amazingly awesome lists can be found in the awesome-awesomeness list.
Also awesome is Scaladex, the searchable, tagged, and centralized index of Scala libraries.
Projects with over 500 stargazers are in bold.
Table of Contents
- Learning Scala
- Projects
- Android
- Authentication
- Authorization
- Big Data
- Cryptography
- CSV
- Data Binding and Validation
- Database
- DevOps
- Distributed Systems
- Extensions
- Functional Reactive Programming
- Geospatial
- Graphical User Interfaces
- HTTP
- i18n
- Image processing and image analysis
- JavaScript
- JSON
- Markdown
- Metrics and Monitoring
- Misc
- Modularization and Dependency Injection
- Parsing
- Reactive Web Frameworks
- Sbt plugins
- Science and Data Analysis
- Scheduling
- Semantic Web
- Serialization
- Templating
- Testing
- Tools
- Web Frameworks
- XML / HTML
- YAML
- Contributing
Database
Database access libraries in Scala.
- Activate ★ 311 ⧗ 8 – Pluggable object persistence in Scala.
- Anorm ★ 135 – Simple SQL data access.
- Casbah (repo) – Officially supported Scala driver for MongoDB
- CouchDB-Scala ★ 59 ⧗ 21 – Purely functional Scala client for CouchDB
- doobie ★ 812 ⧗ 0 – Pure functional JDBC layer for Scala.
- Elastic4s ★ 1049 ⧗ 0 – A scala DSL / reactive client for Elasticsearch
- Finagle ★ 42 ⧗ 71 – PostgreSQL protocol support for Finagle
- longevity ★ 78 ⧗ 21 – A Persistence Framework for Scala and NoSQL with a Domain Driven Design Orientation
- lucene4s ★ 3 ⧗ 56 – Light-weight convenience wrapper around Lucene to simplify complex tasks and add Scala sugar.
- MapperDao ★ 12 ⧗ 36 – An ORM library for oracle, mysql, mssql, and postgresql
- Memcontinuationed ★ 51 ⧗ 245 – Memcached client for Scala.
- Morpheus ★ 104 ⧗ 0 – Reactive type safe Scala Driver for MySQL/Postgres.
- neo4akka ★ 6 ⧗ 117 – Neo4j Scala client using Akka HTTP with compile-time query interpolation, case class support, true non-blocking IO, and much more.
- Phantom ★ 903 ⧗ 5 – Reactive typed Scala driver for Apache Cassandra.
- PostgreSQL and MySQL async ★ 983 ⧗ 0 – Async database drivers to talk to PostgreSQL and MySQL in Scala.
- Pulsar4s ★ 15 – Scala client for Apache Pulsar.
- Quill ★ 865 ⧗ 0 – Compile-time Language Integrated Query for Scala
- ReactiveCouchbase – Reactive Scala Driver for Couchbase. Also includes a Play plug-in. An official plug-in is also in development.
- ReactiveMongo ★ 704 ⧗ 8 – Reactive Scala Driver for MongoDB.
- ReactiveNeo ★ 73 ⧗ 114 – Reactive type-safe Scala driver for Neo4J.
- rediscala ★ 642 ⧗ 0 – Non-blocking, Reactive Redis driver for Scala (with Sentinel support)
- Relate ★ 110 ⧗ 7 – Lightweight, blazing-fast database access layer for Scala that abstracts the idiosyncricies of the JDBC while keeping complete control over the SQL.
- rethink-scala ★ 95 ⧗ 144 – Scala Driver for RethinkDB
- Salat ★ 490 ⧗ 9 – ORM for MongoDB. A related Play-plugin is also available.
- Scala ActiveRecord ★ 297 ⧗ 3 – ORM library for scala, inspired by ActiveRecord of Ruby on Rails.
- Scala-Forklift ★ 91 ⧗ 1 – Type-safe database migration for Slick, Git, etc.
- scala-redis ★ 739 ⧗ 1 – A Scala library for connecting to a redis server, with clustering support
- scala-sql ★ 14 ⧗ 34 – Yet another SQL-based DB access library for scala language
- ScalaRelational ★ 51 ⧗ 1 – Type-Safe framework for defining, modifying, and querying SQL databases.
- ScalikeJDBC ★ 746 ⧗ 1 – A tidy SQL-based DB access library for Scala developers.
- Scanamo ★ 92 ⧗ 1 – A library to make using DynamoDB with Scala simpler and less error-prone.
- scredis ★ 149 ⧗ 29 – Non-blocking Redis client built on top of Akka IO (used by Livestream)
- Shade ★ 82 ⧗ 32 – Memcached client for Scala, based on Spymemcached
- Slick ★ 1795 ⧗ 0 – Modern database query and access library for Scala.
- Sorm ★ 239 ⧗ 2 – A functional boilerplate-free Scala ORM.
- Squeryl ★ 484 ⧗ 1 – A Scala DSL for talking with databases with minimum verbosity and maximum type safety.
- Tepkin ★ 86 ⧗ 251 – Reactive MongoDB Driver for Scala built on top of Akka IO and Akka Streams.
Messaging
- Op-Rabbit ★ 153 ⧗ 2 – High-level messaging library for Akka and Op-Rabbit.
Graphical User Interfaces
Libraries for creation of graphical user interfaces
- ScalaFX – Scala DSL for creating Graphical User Interfaces that sits on top of JavaFX.
Web Frameworks
Scala frameworks for web development.
- Analogweb – Tiny, simple, and pluggable web framework in Scala.
- Chaos ★ 220 ⧗ 27 – A lightweight framework for writing REST services in Scala.
- Colossus ★ 811 ⧗ 70 – lightweight framework for building high-performance applications in Scala that require non-blocking network I/O.
- Finatra ★ 1558 ⧗ 0 – A sinatra-inspired web framework for scala, running on top of Finagle.
- Lift ★ 1069 ⧗ 0 – Secure and powerful full stack web framework (discussion).
- peregine ★ 11 ⧗ 40 – A simple and async lightweight Scala web framework.
- Play ★ 9229 ⧗ 0 – Makes it easy to build scalable, fast and real-time web applications with Java & Scala.
- Play Pagelets ★ 47 ⧗ 11 – A Module for the Play Framework to build resilient and modular Play applications in an elegant and concise manner.
- Reactive ★ 194 ⧗ 6 – FRP and web abstractions, which can be plugged into any web framework (currently only has bindings for Lift).
- Scalatra ★ 2146 ⧗ 0 – Tiny Scala high-performance, async web framework, inspired by Sinatra.
- Skinny Framework ★ 621 ⧗ 1 – A full-stack web app framework upon Scalatra for rapid Development in Scala.
- Socko – An embedded Scala web server powered by Netty networking and Akka processing.
- suzaku – Suzaku web UI framework for Scala
- Unfiltered ★ 673 ⧗ 6 – A modular set of unopinionated primitives for servicing HTTP and WebSocket requests in Scala.
- Xitrum – An async and clustered Scala web framework and HTTP(S) server fusion on top of Netty, Akka, and Hazelcast.
- youi ★ 81 ⧗ 12 – Next generation user interface framework and server engine for Scala and Scala.js.
Reactive Web Frameworks
Scala libraries for Reactive Web development
- Binding.scala ★ 935 ⧗ 0 – A reactive web framework. It enables you use native XML literal syntax to create reactive DOM nodes, which are able to automatically change whenever the data source changes.
- Korolev – Modern single-page applications running on the server side
- Udash – a web framework based on Scala.js with support for property bindings, frontend routing, i18n and much more. It also provides strongly typed client<->server RPC system based on WebSockets.
- Widok – Reactive web framework for the JVM and Scala.js
- Vert.x Web – Toolkit to build Reactive web applications..
Data Binding and Validation
Scala libraries for data binding and validation
- Accord ★ 379 ⧗ 0 – A sane validation library for Scala
- form-binder ★ 17 ⧗ 29 – A micro data binding and validating framework, very easy to use and hack
- Monkeytail ★ 55 – A set of validation macros and helpers for cats.Validated
i18n
Scala libraries for i18n.
- scala-xgettext ★ 19 ⧗ 99 – A compiler plugin that acts like GNU xgettext command to extract i18n strings in Scala source code files to Gettext .po file.
- Scaposer ★ 30 ⧗ 99 – GNU Gettext .po file loader for Scala.
Authentication
Libraries for implementing authentications schemes.
- akka-http-session ★ 268 ⧗ 11 – Web&mobile client-side sessions for akka-http based applications, with optional JWT support
- AWS Request Signer ★ 4 ⧗ 43 – Helper to evaluate the signing headers for HTTP requests to Amazon Web Services.
- OAuth2-mock-play ★ 16 ⧗ 23 – Implementation of an OAuth2 server designed for mocking/testing and configurable by environment variables (by use of the Typesafe config).
- Play Google Auth Module ★ 17 ⧗ 76 – A very simple implementation of Google OpenID Connect authentication for Play 2 applications.
- play-pac4j ★ 255 ⧗ 0 – Security library managing authentication (CAS, OAuth, OpenID, SAML, LDAP, SQL, JWT…), authorizations and logout for Play 2.x in Java and Scala.
- play-silhouette ★ 600 ⧗ 1 – Authentication library for Play Framework applications that supports several authentication methods, including OAuth1, OAuth2, OpenID, Credentials or custom authentication schemes.
- play2-auth ★ 617 ⧗ 4 – Play2.x Authentication and Authorization module.
- scala-oauth2-provider ★ 419 ⧗ 7 – OAuth 2.0 server-side implementation written in Scala.
- SecureSocial ★ 1210 ⧗ 1 – A module that provides OAuth, OAuth2 and OpenID authentication for Play Framework applications.
Authorization
Libraries for implementing authorization strategies.
- deadbolt-2 ★ 467 ⧗ 3 – A Play 2.x module supporting role-based and proprietary authorization; idiomatic APIs for Scala and Java APIs are provided.
Cryptography
Cryptography and Encryption Libraries.
- Scrypto ★ 50 ⧗ 4 – All-purpose cryptographic framework.
- TSec ★ 27 ⧗ 0 – Type-safe, functional, general-cryptography library
Testing
Libraries for code testing.
- cornichon ★ 109 ⧗ 3 – Scala DSL for testing HTTP JSON API.
- Gatling – Async Scala-Akka-Netty based Stress Tool.
- ScalaCheck ★ 1196 ⧗ 6 – Property-based testing for Scala.
- Minitest – A testing framework with a focus on simplicity.
- ScalaMeter – Performance & memory footprint measuring, regression testing.
- ScalaMock – Scala native mocking framework
- scalaprops ★ 171 ⧗ 5 – Another property based testing library for Scala
- ScalaTest ★ 532 ⧗ 5 – A testing tool for Scala and Java developers.
- Scalive ★ 187 ⧗ 20 – Connect a Scala REPL to running JVM processes without any prior setup; this library is used for inspecting systems in production mode.
- Specs2 ★ 570 ⧗ 1 – Software Specifications for Scala.
- µTest ★ 197 ⧗ 0 – A tiny, portable testing library for Scala.
- testcontainers-scala ★ 52 ⧗ 2 – Docker containers for testing in Scala.
JSON
Libraries for work with json.
- argonaut – Purely Functional JSON in Scala.
- circe ★ 824 ⧗ 2 – JSON library based on Argonaut, depends on Cats
- diffson ★ 94 ⧗ 14 – A scala diff/patch library for Json
- jackson-module-scala ★ 313 ⧗ 8 – Add-on module for Jackson to support Scala-specific datatypes.
- jawn ★ 252 ⧗ 4 – Fast json parser (According to them, competetive with java gson/jackson speed).
- json4s ★ 877 ⧗ 0 – Project aims to provide a single AST to be used by other scala json libraries.
- jsoniter-scala ★ 47 ⧗ 7 – Scala macros for compile-time generation of ultra-fast JSON codecs.
- persist-json ★ 9 ⧗ 49 – Fast json parser.
- play-json ★ 39 ⧗ 7 – Flexible and powerful JSON manipulation, validation and serialization, with no reflection at runtime.
- Pushka ★ 75 ⧗ 21 – Scala JSON serialization library with annotations.
- qbproject – Scala Libs around JSON and API developement for Play Framework.
- rapture-json – Clean, intuitive, unintrusive, boilerplate-free Scala API
- scala-jsonapi ★ 95 ⧗ 240 – Support library for integrating the JSON API spec with Scala and Spray JSON, Play! JSON or Circe.
- scalajack ★ 81 ⧗ 35 – Fast ‘n easy JSON serialization with optional MongoDB support. Uses Jackson under the hood.
- sonofjson ★ 23 ⧗ 11 – A Scala library for dealing with JSON in a way that makes it almost feel native.
- spray-json ★ 606 ⧗ 2 – Lightweight, clean and efficient JSON implementation in Scala.
- sbt-json – sbt plugin that generates Scala case classes for easy, statically typed and implicit access of JSON documents
YAML
Libraries for work with YAML.
- MoultingYAML ★ 43 ⧗ 2 – Type-class based YAML serialization and deserialization on top of SnakeYAML.
CSV
Libraries for work with CSV.
- kantan.csv ★ 143 ⧗ 24 – CSV handling library for Scala with multiple backends.
- Scala-CSV ★ 365 ⧗ 1 – CSV Reader/Writer for Scala.
- fm-flatfile ★ 1 ⧗ 1 – Very flexible, Flat File (CSV, TSV, Excel, etc) Reader for Scala.
Serialization
Libraries for serializing and deserializing data for storage or transport.
- avro-codegen ★ 24 ⧗ 23 – Code generation from avro schemas to serialize/deserialize avro messages, no runtime reflection.
- Chill ★ 378 ⧗ 4 – Extensions for the Kryo serialization library to ease configuration in systems like Hadoop and Storm.
- msgpack ★ 75 ⧗ 57 – A efficient binary serialization library.
- Pickling ★ 808 ⧗ 0 – Fast, customizable, boilerplate-free pickling support.
- ScalaBuff ★ 218 ⧗ 1 – a Scala Protocol Buffers (protobuf) compiler
- ScalaPB – A Protocol Buffer generator for Scala.
- scodec ★ 474 ⧗ 10 – A combinator library for working with binary data.
- Scrooge – An Apache Thrift code generator for Scala.
- validation ★ 177 ⧗ 3 – Advanced validation & serialization for JSON, HTML form data, etc, with no reflection at runtime.
- µPickle – A lightweight serialization library for Scala that works in ScalaJS, allowing transfer of structured data between the JVM and JavaScript.
Science and Data Analysis
Libraries for scientific computing, data analysis and numerical processing.
- Algebird ★ 1478 ⧗ 0 – Abstract Algebra for Scala.
- Axle ★ 51 ⧗ 9 – A Spire-based DSL for scientific cloud computing.
- BigDL ★ 1662 ⧗ 0 – BigDL is a distributed deep learning library for Apache Spark.
- Breeze ★ 2028 ⧗ 0 – Breeze is a numerical processing library for Scala.
- Chalk ★ 231 ⧗ 6 – Chalk is a natural language processing library.
- FACTORIE ★ 486 ⧗ 7 – A toolkit for deployable probabilistic modeling, implemented as a software library in Scala.
- Figaro ★ 461 ⧗ 0 – Figaro is a probabilistic programming language that supports development of very rich probabilistic models.
- Libra ★ 142 – Libra is a dimensional analysis library based on shapeless, spire and singleton-ops. It contains out of the box support for SI units for all numeric types.
- MGO ★ 37 ⧗ 55 – Modular multi-objective evolutionary algorithm optimization library enforcing immutability.
- MLLib – Machine Learning framework for Spark
- ND4S ★ 201 ⧗ 0 – N-Dimensional arrays and linear algebra for Scala with an API similar to Numpy. ND4S is a scala wrapper around ND4J.
- Numsca ★ 8 ⧗ 0 – Numsca is Numpy for Scala.
- OpenMOLE ★ 65 ⧗ 5 – OpenMOLE (Open MOdeL Experiment) is a workflow engine designed to leverage the computing power of distributed execution environments for naturally parallel processes.
- OscaR – a Scala toolkit for solving Operations Research problems
- Persist-Units ★ 9 ⧗ 40 – Type check units of measure in Scala.
- PredictionIO ★ 10105 ⧗ 0 – machine learning server for developers and data scientists. Built on Apache Spark, HBase and Spray
- Rings ★ 3 ⧗ 0 – An efficient library for polynomial rings. Commutative algebra, polynomial GCDs, polynomial factorization and other sci things at a really high speed.
- Saddle ★ 428 ⧗ 2 – A minimalist port of Pandas to Scala
- Smile – Statistical Machine Intelligence and Learning Engine. Smile is a fast and comprehensive machine learning system.
- Spark Notebook ★ 1896 ⧗ 0 – Scalable and stable Scala and Spark focused notebook bridging the gap between JVM and Data Scientists (incl. extendable, typesafe and reactive charts).
- Spire ★ 1152 ⧗ 3 – Powerful new number types and numeric abstractions for Scala.
- Squants ★ 388 ⧗ 1 – The Scala API for Quantities, Units of Measure and Dimensional Analysis.
- SwiftLearner ★ 20 ⧗ 5 – Simply written algorithms to help study Machine Learning or write your own implementations.
- Tensorflow_scala – TensorFlow API for the Scala Programming Language
- Tyche ★ 89 ⧗ 17 – Probability distributions, stochastic & Markov processes, lattice walks, simple random sampling. A simple yet robust Scala library.
- Zeppelin – Scala and Spark Notebook (like IPython Notebook)
Big Data
- BIDMach ★ 745 ⧗ 0 – CPU and GPU machine learning library, using JNI for GPU computation.
- Flink ★ 2414 ⧗ 0 – Processing framework with powerful stream- and batch-processing capabilities.
- Gearpump ★ 619 ⧗ 5 – Lightweight real-time big data streaming engine
- GridScale ★ 15 ⧗ 5 – A Scala API for computing clusters and grids.
- Kafka ★ 5035 ⧗ 0 – Kafka is a message broker project and aims to provide a unified, high-throughput, low-latency platform for handling real-time data feeds.
- Reactive-kafka ★ 753 ⧗ 0 – Reactive Streams API for Apache Kafka.
- Scalding ★ 2783 ⧗ 2 – A Scala binding for the Cascading abstraction of Hadoop MapReduce.
- Scio – A Scala API for Apache Beam and Google Cloud Dataflow – None
- Scoobi ★ 486 ⧗ 5 – Write type-safe Hadoop programs in idiomatic Scala way
- Scoozie ★ 71 ⧗ 0 – Scala DSL on top of Oozie XML
- Scrunch – A Scala wrapper for Apache Crunch which provides a framework for writing, testing, and running MapReduce pipelines.
- Shadoop ★ 8 ⧗ 69 – A Scala DSL for Hadoop MapReduce.
- 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.
- spark-deployer ★ 69 ⧗ 29 – A sbt plugin which helps deploying Apache Spark stand-alone cluster and submitting job on cloud system like AWS EC2.
- Sparkta ★ 320 ⧗ 1 – Real Time Aggregation based on Spark Streaming.
- Sparkplug ★ 4 ⧗ 1 – Spark package to “plug” holes in data using SQL based rules
- Summingbird ★ 1841 ⧗ 1 – An implementation of the “lambda architecture” as a software abstraction — a single API for Hadoop and Storm.
- Vegas – The missing MatPlotLib for Scala + Spark
Image processing and image analysis
2D and 3D image processing and image analysis
- scalismo ★ 45 ⧗ 9 – Shape modelling and model-based image analysis.
- scrimage ★ 476 ⧗ 0 – Image io, resize, manipulation and thumbnails.
Sound processing and music
- ScalaCollider ★ 121 ⧗ 5 – Sound synthesis and signal processing client for SuperCollider.
Functional Reactive Programming
Event streams, signals, observables, etc.
- Monix ★ 754 ⧗ 0 – Extensions to Scala’s standard library for multi-threading primitives and functional reactive programming. Scala.js compatible.
- Reactive Collections ★ 2 ⧗ 165 – A library that incorporates event streams and signals with specialized collections called reactive containers, and expresses concurrency using isolates and channels.
- RxScala ★ 644 ⧗ 0 – Reactive Extensions for Scala – a library for composing asynchronous and event-based programs using observable sequences
- scala.frp ★ 21 ⧗ 101 – Functional Reactive Programming for Scala (event streams).
- Scala.Rx ★ 771 ⧗ 4 – An experimental library for Functional Reactive Programming in Scala (reactive variables). Scala.js compatible.
- SynapseGrid ★ 109 ⧗ 1 – an FRP framework for constructing reactive real-time immutable data flow systems. It implements an original way of running and organizing event-driven systems based on Petri nets. The topology can be viewed as a .dot graph. The library is compatible with Akka and can seamlessly communicate with other actors.
- Vert.x – A polyglot reactive application platform for the JVM which aims to be an alternative to node.js. Its concurrency model resembles actors. It supports Scala, Clojure, Java, Javascript, Ruby, Groovy and Python.
Modularization and Dependency Injection
Modularization of applications, dependency injection, etc.
- Airframe ★ 25 ⧗ 13 – Dependency injection library tailored to Scala.
- Cableguy ★ 1 ⧗ 269 – Macro based compile time Dependency Injection library.
- Domino ★ 2 ⧗ 463 – Write elegant OSGi bundle activators in Scala.
- Grafter ★ 148 ⧗ 0 – Grafter is a library to configure and wire Scala applications.
- MacWire ★ 661 ⧗ 0 – Scala Macro to generate wiring code for class instantiation. DI container replacement.
- Scala-Guice ★ 211 ⧗ 10 – Scala extensions for Google Guice
- Scaldi ★ 252 ⧗ 1 – Lightweight Scala Dependency Injection Library.
- Sclasner ★ 9 ⧗ 130 – Scala classpath scanner.
- SubCut ★ 403 ⧗ 9 – Scala Uniquely Bound Classes Under Traits.
Distributed Systems
Libraries and frameworks for writing distributed applications.
- Akka – A toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications.
- Akka-tracing ★ 252 ⧗ 2 – A distributed tracing extension for Akka. Provides integration with Play framework, Spray and Akka HTTP.
- autobreaker ★ 6 ⧗ 93 – Automatically wrap classes that return Futures with a Circuit Breaker.
- Clump – A library for expressive and efficient service composition
- CurioDB ★ 459 ⧗ 4 – Distributed & Persistent Redis Clone built with Scala & Akka.
- Finagle – An extensible, protocol-agnostic RPC system designed for high performance and concurrency.
- Glokka ★ 46 ⧗ 148 – Library to register and lookup actors by names in an Akka cluster.
- Lagom – Framework for creating microservice-based systems.
- Reactors – Foundational framework for distributed computing that fuses functional reactive programming and traditional actors.
Extensions
Scala extensions.
- Ammonite-Ops – Safe, easy, filesystem operations in Scala as convenient as in the Bash shell.
- better-files ★ 824 ⧗ 0 – Simple, safe and intuitive Scala I/O. better-files is a dependency-free pragmatic thin Scala wrapper around Java NIO.
- Cassovary ★ 881 ⧗ 0 – A Scala library that is designed from the ground up for space efficiency, handling graphs with billions of nodes and edges.
- cats ★ 1697 ⧗ 0 – Lightweight, modular, and extensible library for functional programming.
- Each ★ 146 ⧗ 0 – A macro library that converts native imperative syntax to Scalaz‘s monadic expressions.
- Eff ★ 220 ⧗ 6 – Extensible effects are an alternative to monad transformers for computing with effects in a functional way.
- enableIf.scala ★ 40 ⧗ 25 – A library that switches Scala code at compile-time, like
#if
in C/C++. - Enumeratum ★ 374 ⧗ 0 – A macro to replace Scala enumerations with a sealed family of case objects. This allows additional checks for the compiler, e.g. for missing cases in a match statement. Has additinal support for Json libraries and the Play framework.
- Freasy-Monad ★ 90 ⧗ 14 – Easy way to create Free Monad for Cats and Scalaz using Scala macros with first-class Intellij support.
- Freedsl ★ 25 ⧗ 5 – A library to implement composable side effects, weaving typeclasses on a wrapping type and the free monad.
- Freestyle ★ 430 ⧗ 0 – A cohesive & pragmatic framework of FP centric Scala libraries.
- Hamsters ★ 216 ⧗ 0 – A mini Scala utility library. Compatible with functional programming beginners. Featuring validation, monad transformers, HLists, Union types.
- idid ★ 4 ⧗ 43 – A library to define common interfaces for different Id types.
- Lamma ★ 70 ⧗ 8 – A Scala date library for date and schedule generation.
- LArray ★ 225 ⧗ 25 – Large off-heap arrays (> 2GB) and mmap files.
- Log4s – Fast, Scala-friendly logging bindings on top of SLF4J. Uses macros for extreme performance.
- Monocle ★ 757 ⧗ 0 – An Optics/Lens library for purely functional manipulation of immutable objects.
- n-scala ★ 662 ⧗ 3 – Scala wrapper for Joda Time.
- Persist-Logging ★ 33 ⧗ 48 – Comprehensive logging library for Scala.
- Quicklens ★ 245 ⧗ 0 – modify deeply nested case class fields with an elegant API
- Rapture (repo) – a collection of libraries for common, everyday programming tasks (I/O, JSON, i18n, etc.)
- Records for Scala ★ 125 ⧗ 55 – Labeled records for Scala based on structural refinement types and macros.
- refined ★ 447 ⧗ 3 – Simple refinement types with compile- and runtime checking
- Resolvable ★ 0 ⧗ 94 – A library to optimize fetching immutable data structures from several endpoints in several formats.
- Sauron ★ 159 ⧗ 58 – Lightweight lens library in less than 50-lines of Scala.
- Scala Async ★ 778 ⧗ 0 – An asynchronous programming facility for Scala.
- Scala Blitz – A library to speed up Scala collection operations by removing runtime overheads during compilation, and a custom data-parallel operation runtime.
- Scala Graph – A Scala library with basic graph functionality that seamlessly fits into the Scala standard collections library.
- scala.meta – A clean-room implementation of a metaprogramming toolkit for Scala.
- Scalactic – Small library of utilities related to quality that helps keeping code clear and correct.
- Scalaz ★ 3045 ⧗ 0 – An extension to the core Scala library for functional programming.
- scribe ★ 36 ⧗ 3 – Practical logging framework that doesn’t depend on any other logging framework and can be completely configured programmatically.
- Shapeless ★ 2002 ⧗ 0 – A type class and dependent type based generic programming library for Scala.
- Simulacrum ★ 484 ⧗ 2 – First class syntax support for type classes in Scala.
- Stateless Future ★ 165 ⧗ 35 – Asynchronous programming in fully featured Scala syntax.
- Twitter Util ★ 1809 ⧗ 1 – General-purpose Scala libraries, including a future implementation and other concurrency tools.
- wvlet-log ★ 43 ⧗ 13 – A library for enhancing your application logs with colors and source code locations.
Misc
Projects that don’t fit into any specific category.
- Agora – Library of vote-counting algorithms for elections.
- Ammonite-REPL – An improved Scala REPL: syntax highlighting, output formatting, multi-line input, and more.
- BootZooka ★ 331 ⧗ 5 – Simple project to quickly start developing a web application using AngularJS and Akka HTTP, without the need to write login, user registration etc.
- Eclair ★ 469 – ACINQ’s Lightning Network implementation written in Scala. Lightning Network is a second layer protocol built on top of bitcoin to address scalability, privacy, confirmation time and many other issues.
- Fansi ★ 96 ⧗ 15 – Scala/Scala.js library for manipulating Fancy Ansi colored strings
- GoogleApiScala ★ 5 ⧗ 3 – A simple scala library offering control of Google Drive, Calendar, and the Admin SDK.
- mailgun4s ★ 7 ⧗ 4 – Scala wrapper around the Mailgun API
- media4s ★ 5 ⧗ 3 – Scala command-line wrapper around ffmpeg, ffprobe, ImageMagick, and other tools relating to media.
- Miniboxing – A Scala compiler plugin that improves program performance — see the project web site – Less boxes
- Openquant ★ 73 ⧗ 0 – A Scala open source quantitative trading platform
- Ostinato ★ 27 ⧗ 7 – A chess library that runs on the server (Scala) and on the browser (ScalaJS)
- pdf4s ★ 3 ⧗ 3 – Simplified wrapper to create PDFs in Scala.
- Play Swagger ★ 174 ⧗ 3 – Automatically create Swagger documentation for your Play REST API
- powerscala ★ 11 ⧗ 80 – Powerful framework providing many useful utilities and features on top of the Scala language.
- pprint – Pretty-printer for Scala values and types for easier reading and debugging
- PureConfig ★ 337 ⧗ 2 – A boilerplate-free Scala library for loading configuration files.
- REPLesent ★ 319 ⧗ 5 – A presentation tool built inside the Scala REPL. Runs code straight from your slides with a single keystroke.
- scala-debugger ★ 52 ⧗ 18 – Scala libraries and tooling utilizing the Java Debugger Interface.
- scala-ssh ★ 186 ⧗ 6 – Remote shell access via SSH for your Scala applications
- Scalan ★ 81 ⧗ 67 – A framework for development of domain-specific compilers in Scala
- ScalaSTM – Software Transaction Memory for Scala
- Scavenger – An experimental automated theorem prover.
- settler ★ 4 ⧗ 171 – Boilerplate-free typed settings generation in Scala.
- Simple Scala Config ★ 43 ⧗ 5 – Thin, idiomatic Scala wrapper around Typesafe Config with custom
Reader[T]
suppport. - YahooFinanceScala ★ 15 ⧗ 2 – Get stock data from Yahoo Finance using Akka http.
Android
Scala libraries and wrappers for Android development.
- Android SDK Plugin for SBT ★ 609 ⧗ 1 – An sbt plugin that adds tasks for developing Android applications.
- Gradle Android Scala Plugin ★ 318 ⧗ 20 – A gradle plugin that allows you to use Scala with Android
- Macroid ★ 511 ⧗ 3 – A modular functional UI language for Android.
- Scaloid ★ 2065 ⧗ 0 – Less painful Android development with Scala.
HTTP
Scala libraries and wrappers for HTTP clients.
- Akka HTTP ★ 306 ⧗ 1 – The Streaming-first HTTP server/module of Akka.
- Dispatch ★ 366 ⧗ 6 – Library for asynchronous HTTP interaction. It provides a Scala vocabulary for Java’s async-http-client.
- Finch.io ★ 1005 ⧗ 3 – Purely Functional REST API atop of Finagle.
- Fintrospect ★ 37 ⧗ 0 – Implement fast, type-safe HTTP webservices for Finagle.
- Http4s ★ 732 ⧗ 3 – A minimal, idiomatic Scala interface for HTTP.
- jefe ★ 2 ⧗ 105 – Manages installation, updating, downloading, launching, error reporting, proxying, multi-server management, and much more for your stand-alone and web applications.
- lolhttp ★ 64 ⧗ 10 An HTTP & HTTP/2 Server and Client library for Scala.
- Netcaty ★ 13 ⧗ 67 – Simple net test client/server for Netty and Scala lovers.
- Newman ★ 241 ⧗ 88 – A REST DSL that tries to take the best from Dispatch, Finagle and Apache HttpClient. See here for rationale.
- RösHTTP ★ 79 ⧗ 9 – A lightweight asynchronous HTTP API built with Scala.js in mind. Supports the JVM and Node.js runtimes as well as most browsers.
- scalaj-http ★ 580 ⧗ 0 – Simple scala wrapper for HttpURLConnection (including OAuth support).
- Scalaxb ★ 235 ⧗ 18 – An XML data-binding tool for Scala that supports W3C XML Schema (xsd) and Web Services Description Language (wsdl) as the input file.
- Spray – Actor-based library for http interaction.
- sttp – The Scala HTTP client you always wanted!
- Tubesocks ★ 12 ⧗ 174 – Library supporting bi-directional communication with websocket servers.
Semantic Web
Scala libraries for interactions with the Web of Data, and other RDF tools.
- Banana-RDF ★ 207 ⧗ 26 – Scala-friendly abstractions for RDF and Linked Data technologies. Supports Jena, Sesame and native Scala.
- rdfp ★ 4 ⧗ 50 – RDF stream processing framework in Scala
- Scowl ★ 16 ⧗ 36 – Scala DSL allowing a declarative approach to composing OWL expressions and axioms using the OWL API.
Metrics and Monitoring
Scala libraries for gathering metrics and monitoring applications.
- Kamon – Gathering metrics from applications built with Akka, Spray and Play! with support for user metrics as well.
- Metrics-Scala ★ 335 – Scala API for Dropwizard’s Metrics library.
Parsing
Scala libraries for creating parsers.
- atto ★ 148 ⧗ 1 – Pure functional incremental text parsing library for Scala, based on Attoparsec.
- CLIST ★ 43 ⧗ 24 – Command Line Interface Scala Toolkit
- Fast Parse ★ 467 ⧗ 1 – Fast to write, Fast running Parsers in Scala
- Parboiled2 ★ 502 ⧗ 7 – A Fast Parser Generator for Scala 2.10.3+.
- Scala Parser Combinators ★ 221 ⧗ 0 – Scala Standard Parser Combinator Library.
- Scopt ★ 678 ⧗ 0 – Simple scala command line options parsing.
Sbt plugins
Sbt plugins to make your life easier.
- coursier ★ 847 ⧗ 0 – A Scala library to fetch dependencies from Maven / Ivy repositories
- pttrt ★ 4 ⧗ 259 – A sbt plugin, designed to pass data from compile-time to run-time.
- sbt-api-mappings ★ 38 ⧗ 67 – A Sbt plugin that resolves external API links to common Scala libraries.
- sbt-buildinfo ★ 274 ⧗ 1 – Generates Scala source from build definition.
- sbt-classfinder ★ 3 ⧗ 39 – Retrieves runtime information about the classes and traits in a project.
- sbt-cppp ★ 4 ⧗ 272 – A sbt plugin to support Protocol Buffers, especially in multi-project builds.
- sbt-dependency-graph ★ 731 ⧗ 1 – Create a dependency graph for your project.
- sbt-docker ★ 422 ⧗ 3 – Create Docker images directly from sbt
- sbt-ensime ★ 197 ⧗ 11 – Generates .ensime config files for SBT projects http://ensime.org/build_tools/sbt
- sbt-groll ★ 87 ⧗ 10 – sbt plugin to roll the Git history.
- sbt-haxe ★ 9 ⧗ 274 – A Sbt plugin to compile Haxe sources.
- sbt-ide-settings ★ 32 ⧗ 27 – SBT plugin for tweaking various IDE settings
- sbt-native-packager ★ 811 ⧗ 3 – Bundle up Scala software for native packaging systems, like deb, rpm, homebrew, msi..
- sbt-pack ★ 284 ⧗ 7 – A sbt plugin for creating distributable Scala packages.
- sbt-pantarhei ★ 3 ⧗ 0 – SBT plugin to generate release notes from the pull requests and git commits in GitHub.
- sbt-revolver ★ 519 ⧗ 0 – Fork & Stop processes from sbt.
- sbt-robovm ★ 107 ⧗ 17 – An sbt plugin for iOS development in Scala
- sbt-scala-js-map ★ 12 ⧗ 2 – A sbt plugin that configures source mapping for Scala.js projects hosted on Github
- sbt-sublime ★ 145 ⧗ 38 – Create Sublime Text projects with library dependencies sources
- sbt-updates ★ 316 ⧗ 3 – Shows sbt project’s dependency updates.
- sbt-versions ★ 14 ⧗ 167 – Plugin that checks for updated versions of your project’s dependencies.
- sbt-view ★ 7 ⧗ 18 – View ScalaDoc/JavaDoc in browser window.
- sbteclipse ★ 632 ⧗ 0 – Create Eclipse project definitions from sbt builds.
- scala-clippy ★ 211 ⧗ 5 – Good advice and coloring for Scala compiler errors
- ScalaKata2 ★ 79 ⧗ 0 – Scala playground & Documentation tool.
- tut ★ 364 ⧗ 2 – Tool for writing documentation with typechecked examples.
- xsbt-web-plugin ★ 334 ⧗ 1 – Build enterprise J2EE Web applications in Scala.
- sbt-hepek ★ 5 ⧗ 0 – Make static websites in Scala code (render
object
to file!).
XML / HTML
XML and HTML generation and processing
- scala-scraper ★ 316 ⧗ 1 – A library for scraping content from HTML pages.
- xs4s ★ 29 ⧗ 47 – XML Streaming for Scala for processing large (gigabytes and over) XML files.
Markdown
- Laika ★ 161 – Text Markup Transformer for sbt and Scala applications, transforming Markdown and reStructuredText to HTML and PDF.
Learning Scala
Nice books, blogs and other resources to learn Scala
- Demos and Examples in Scala (Chinese) ★ 525 ⧗ 2 – repo of sample Scala library usage, written in Chinese
- A Tour of Scala – Bite-sized introductions to some of the core language concepts.
- Deploying Scala libraries to Sonatype for dummies ★ 23 ⧗ 25 – None
- Functional Programming in Scala – Coursera Specialization (5 courses) created by Martin Odersky et al. at the EPFL (Ecole polytechnique fédérale de Lausanne).
- Reactive Programming with Scala and Akka – Use the concepts of reactive programming to build distributed systems running on multiple nodes
- Scala Collections Cookbook – Scala collections introduction. written in Chinese.
- Scala Exercises – Brings the popular Scala Koans to the web. Offering hundreds of solvable exercises organized into 42 categories covering the basics of the Scala language.
- Exercism – Scala Exercises – Community-driven Scala exercises.
- Scala With Cats – Learn system architecture and design using the techniques of modern functional programming with Cats
- Scala in Depth – None
- Scala school – Scala school started as a series of lectures at Twitter to prepare experienced engineers to be productive Scala programmers.
- Essential Scala – None
- Scalera Blog – Blog about Scala language and its environment (howto’s, good practices, tips,…). Weekly posts written in both spanish and english
- The Neophyte’s Guide to Scala – None
- Resources by Dr. Mark Lewis >> Website | Youtube Playlists
- Functional Programming for Mortals – None
- The Type Astronaut’s Guide to Shapeless – None
- Learn-by-doing functional programming course on Scala – Covers type classes, functors, applicatives, monads, monad transformers, free monad
- Get Programming with Scala – Tutorial-driven introduction to Scala
- Introduction to programming with dependent types in Scala – Video Course by Dmytro Mitin
JavaScript
JavaScript generation and interop libraries.
- js-scala ★ 155 ⧗ 9 – JavaScript as an embedded DSL in Scala
- scala-js-fiddle (repo) – Browser-based Scala.js playground
- Scala.js (repo) – Scala to JavaScript compiler
Scheduling
- akka-quartz-scheduler ★ 365 – Quartz Extension and utilities for cron-style scheduling in Akka.
Templating
Web templating engines.
- Beard ★ 67 ⧗ 3 – lightweight logicless templating engine inspired by Mustache
- Scalatags ★ 492 ⧗ 3 – Write html as scala code and have your IDE syntax check it.
- Twirl ★ 324 ⧗ 3 – The Play Scala Template Compiler
Tools
- Abide ★ 243 ⧗ 3 – Library for quick scala code checking and validation
- Codacy – Automated Code Reviews for Scala
- Fastring ★ 97 ⧗ 2 – Extremely fast string formatting
- Gitbucket ★ 6296 ⧗ 0 – The easily installable GitHub clone powered by Scala
- sbt (repo) – The interactive build tool for Scala
- Scala @LibHunt – The go-to Scala Toolbox.
- scala-trace-debug ★ 80 ⧗ 14 – Multithreaded print debug tool
- Scalariform ★ 116 ⧗ 47 – Scala source code formatter
- Scalastyle ★ 463 ⧗ 1 – Scala style checker.
- Scalatex ★ 236 ⧗ 12 – Programmable, Typesafe Document Generation
- Scapegoat ★ 230 ⧗ 6 – Scala compiler plugin for static code analysis
- Scaps (repo) – A search engine for Scala libraries
- Scoverage – Scala Code Coverage tool
- Wartremover ★ 662 ⧗ 1 – Wartremover a flexible Scala code linting tool
- Giter8 command line tool to generate files and directories from templates published on Github
Geospatial
Libraries to aid with geospatial calculations and artifacts.
- Geotrellis ★ 553 ⧗ 0 – Scalable raster toolkit for GIS processing
- osm4scala ★ 8 ⧗ 40 – OpenStreetMap PBF2 file parser
- sfcurve ★ 20 ⧗ 1 – Space filling curves in Scala for geospatial indexing and query
Devops
DevOps related tools and libraries.
- Skuber ★ 85 ⧗ 0 – Kubernetes client in Scala