awesome-scala
A community driven list of useful Scala libraries, frameworks and software.
https://github.com/eric-erki/awesome-scala
Last synced: 6 days ago
JSON representation
-
Android
- Scaloid ★ 2065 ⧗ 0 - Less painful Android development with Scala.
- 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
- Android SDK Plugin for SBT ★ 609 ⧗ 1 - An sbt plugin that adds tasks for developing Android applications.
- Macroid ★ 511 ⧗ 3 - A modular functional UI language for Android.
-
Artificial Intelligence
- CIlib ★ 82 - Typesafe, purely functional Computational Intelligence.
- CIlib-tutorial ★ 2 - A tutorial book for cilib.
- CIlib-tutorial ★ 2 - A tutorial book for cilib.
-
Authentication
- 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.
- 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
- deadbolt-2 ★ 467 ⧗ 3 - A Play 2.x module supporting role-based and proprietary authorization; idiomatic APIs for Scala and Java APIs are provided.
-
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.
- Scalding ★ 2783 ⧗ 2 - A Scala binding for the Cascading abstraction of Hadoop MapReduce.
- Schemer - Schema registry for CSV, TSV, JSON, AVRO and Parquet schema. Supports schema inference and GraphQL API.
- Scio - A Scala API for [Apache Beam](https://beam.apache.org/) and [Google Cloud Dataflow](https://cloud.google.com/dataflow/) - None
- spark-deployer ★ 69 ⧗ 29 - A sbt plugin which helps deploying Apache Spark stand-alone cluster and submitting job on cloud system like AWS EC2.
- 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
- Gearpump ★ 619 ⧗ 5 - Lightweight real-time big data streaming engine
- Sparkta ★ 320 ⧗ 1 - Real Time Aggregation based on Spark Streaming.
- Reactive-kafka ★ 753 ⧗ 0 - Reactive Streams API for Apache Kafka.
-
Cryptography
- TSec ★ 27 ⧗ 0 - Type-safe, functional, general-cryptography library
-
CSV
- kantan.csv ★ 143 ⧗ 24 - CSV handling library for Scala with multiple backends.
- Scala-CSV ★ 365 ⧗ 1 - CSV Reader/Writer for Scala.
-
Database
- ReactiveCouchbase - Reactive Scala Driver for Couchbase. Also includes a Play plug-in. An official plug-in is also in development.
- Sangria - Scala GraphQL Implementation
- Anorm ★ 135 - Simple SQL data access.
- Casbah - Officially supported Scala driver for MongoDB
- Clickhouse-scala-client - Reactive client for Clickhouse
- CouchDB-Scala ★ 59 ⧗ 21 - Purely functional Scala client for CouchDB
- Elastic4s ★ 1049 ⧗ 0 - A scala DSL / reactive client for Elasticsearch
- Finagle ★ 42 ⧗ 71 - PostgreSQL protocol support for Finagle
- laserdisc ★ 37 - A Future-free, fs2 native pure FP Redis client
- 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.
- neotypes ★ 22 ⧗ 2 - Pure functional driver for neo4j.
- 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
- ReactiveMongo ★ 704 ⧗ 8 - Reactive Scala Driver for MongoDB.
- 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.
- 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.
- Slick-pg ★ 714 - Slick extensions for PostgreSQL.
- 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.
- Scruid ★ 48 - Scruid (Scala+Druid) is an open source library that allows you to compose Druid queries easily in Scala.
- Tepkin ★ 86 ⧗ 251 - Reactive MongoDB Driver for Scala built on top of Akka IO and Akka Streams.
- Casbah - Officially supported Scala driver for MongoDB
- ReactiveCouchbase - Reactive Scala Driver for Couchbase. Also includes a Play plug-in. An official plug-in is also in development.
-
Data Binding and Validation
- form-binder ★ 17 ⧗ 29 - A micro data binding and validating framework, very easy to use and hack
- Octopus ★ 15 - Scala library for boilerplate-free validation
- Dupin ★ 7 - Minimal, idiomatic, customizable validation for Scala.
- Veto - A scala validation library without dependencies.
-
Devops
-
Misc.
- Skuber ★ 85 ⧗ 0 - Kubernetes client in Scala
-
-
Distributed Systems
- Clump - A library for expressive and efficient service composition
- Reactors - Foundational framework for distributed computing that fuses functional reactive programming and traditional actors.
- 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](http://martinfowler.com/bliki/CircuitBreaker.html).
- 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.
- Reactors - Foundational framework for distributed computing that fuses functional reactive programming and traditional actors.
- Parapet - A purely functional library to build distributed and event-driven systems
-
Extensions
- Log4s - Fast, Scala-friendly logging bindings on top of [SLF4J](http://slf4j.org/). Uses macros for extreme performance.
- Rapture - a collection of libraries for common, everyday programming tasks (I/O, JSON, i18n, etc.)
- 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.
- 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.
- Chimney ★ 92 ⧗ 5 - Scala library for boilerplate-free data transformations.
- Each ★ 146 ⧗ 0 - A macro library that converts native imperative syntax to [Scalaz](https://github.com/scalaz/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](http://slf4j.org/). Uses macros for extreme performance.
- n-scala ★ 662 ⧗ 3 - Scala wrapper for Joda Time.
- Persist-Logging ★ 33 ⧗ 48 - Comprehensive logging library for Scala.
- 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.
- Squid ★ 88 ⧗ 9 - Type-safe metaprogramming framework with typed, hygienic quasiquotes.
- 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.
- 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.
- 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.
- Scala-Logging ★ 707 - Convenient and performant logging library for Scala wrapping SLF4J.
- chronoscala ★ 38 ⧗ 0 - Scala wrapper for Java Date/Time API.
- Dsl.scala - A framework to create embedded Domain-Specific Languages in Scala, along with some built-in DSLs, including async/await, generators, delimited continuations, asynchronous collection comprehension, RAII, monadic !-notation for cats and scala, etc.
- Scala-Logging ★ 707 - Convenient and performant logging library for Scala wrapping SLF4J.
- Monocle ★ 757 ⧗ 0 - An Optics/Lens library for purely functional manipulation of immutable objects.
- Quicklens ★ 245 ⧗ 0 - modify deeply nested case class fields with an elegant API
- Simulacrum ★ 484 ⧗ 2 - First class syntax support for type classes in Scala.
- tinylog ★ 198 ⧗ 0 - Lightweight logging framework with native logging API for Scala.
-
Functional Reactive Programming
- REScala - REScala is a library for functional reactive programming on the JVM and the Web. It provides a rich API for event stream transformations and signal composition with managed consistent up-to-date state and minimal syntactic overhead.
- fs2 ★ 1323 ⧗ 340 - Compositional, streaming I/O library for Scala
- Iteratee ★ 158 - Iteratees for cats
- Monix ★ 1432 ⧗ 164 - 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 ★ 824 ⧗ 0 - Reactive Extensions for Scala – a library for composing asynchronous and event-based programs using observable sequences
- REScala - REScala is a library for functional reactive programming on the JVM and the Web. It provides a rich API for event stream transformations and signal composition with managed consistent up-to-date state and minimal syntactic overhead.
- Reactor-Scala-Extensions - Scala extensions for [Project Reactor](http://projectreactor.io)
- scala.frp ★ 22 ⧗ 101 - Functional Reactive Programming for Scala (event streams).
- Scala.Rx ★ 898 ⧗ 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.
- Reactor-Scala-Extensions - Scala extensions for [Project Reactor](http://projectreactor.io)
-
Geospatial
-
Misc.
- Geotrellis ★ 553 ⧗ 0 - Scalable raster toolkit for GIS processing
- sfcurve ★ 20 ⧗ 1 - Space filling curves in Scala for geospatial indexing and query
- osm4scala ★ 8 ⧗ 40 - OpenStreetMap PBF2 file parser
-
-
Graphical User Interfaces
- ScalaFX - Scala DSL for creating Graphical User Interfaces that sits on top of JavaFX.
-
HTTP
- Fintrospect ★ 37 ⧗ 0 - Implement fast, type-safe HTTP webservices for [Finagle](https://github.com/twitter/finagle).
- Spray - Actor-based library for http interaction.
- Akka HTTP ★ 306 ⧗ 1 - The Streaming-first HTTP server/module of [Akka](https://github.com/akka/akka).
- Dispatch ★ 366 ⧗ 6 - Library for asynchronous HTTP interaction. It provides a Scala vocabulary for Java’s [async-http-client](https://github.com/AsyncHttpClient/async-http-client).
- Finch.io ★ 1005 ⧗ 3 - Purely Functional REST API atop of [Finagle](https://github.com/twitter/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
- 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.
-
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.
-
Image processing and image analysis
- scala-phash ★ 11 ⧗ 2 - Image comparison by hash codes
- scalismo ★ 45 ⧗ 9 - Shape modelling and model-based image analysis.
- scrimage ★ 654 ⧗ 97 - Image io, resize, manipulation and thumbnails.
-
JavaScript
-
Misc.
- scala-js-fiddle - js-fiddle)) - Browser-based Scala.js playground
- Scala.js - js/scala-js)) - Scala to JavaScript compiler
- scala-js-fiddle - js-fiddle)) - Browser-based Scala.js playground
-
-
JSON
- argonaut - Purely Functional JSON in Scala.
- qbproject - Scala Libs around JSON and API development for Play Framework.
- rapture-json - Clean, intuitive, unintrusive, boilerplate-free Scala API
- uJson - fast, flexible and intuitive JSON for Scala
- argonaut - Purely Functional JSON in Scala.
- 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.
- 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.
- 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.
- 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
- circe ★ 824 ⧗ 2 - JSON library based on Argonaut, depends on Cats
-
Learning Scala
-
Company Blogs
- Scala Times - Weekly newsletter about scala
- Functional Works / Learn - Quality resources maintained by functional works
-
Misc.
- Dr. Mark Lewis
- Essential Scala - 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).
- Functional Programming for Mortals - None
- Get Programming with Scala - Tutorial-driven introduction to Scala
- Programming Community Curated Resources for Learning Scala
- Reactive Programming with Scala and Akka - Use the concepts of reactive programming to build distributed systems running on multiple nodes
- Scala With Cats - Learn system architecture and design using the techniques of modern functional programming with [Cats](https://typelevel.org/cats/)
- Scala in Depth - None
- Scala for the Impatient 2nd Edition - Covers most Scala features with short and easy to understand explainations.
- The Type Astronaut's Guide to Shapeless - None
-
Categories
Sbt plugins
47
Extensions
42
Database
41
Misc
28
Science and Data Analysis
28
Learning Scala
24
Tools
18
JSON
17
Web Frameworks
16
Big Data
15
HTTP
14
Functional Reactive Programming
12
Serialization
12
Testing
11
Distributed Systems
9
Modularization and Dependency Injection
9
Authentication
8
Parsing
7
Android
5
Reactive Web Frameworks
4
Data Binding and Validation
4
Templating
4
Geospatial
3
Semantic Web
3
JavaScript
3
Image processing and image analysis
3
Artificial Intelligence
3
CSV
2
Sound processing and music
2
XML / HTML
2
i18n
2
Authorization
1
Graphical User Interfaces
1
YAML
1
Markdown
1
Metrics and Monitoring
1
Scheduling
1
Podcasts
1
Devops
1
Messaging
1
Cryptography
1
Sub Categories
Keywords
scala
125
sbt-plugin
18
functional-programming
15
sbt
15
json
12
http
10
scalajs
10
cats
8
java
7
reactive
7
scalaz
7
typelevel
6
serialization
6
reactive-streams
6
spark
6
framework
6
streaming
6
testing
5
database
5
scala-library
5
http-client
5
rpc
4
finagle
4
web-framework
4
machine-learning
4
monix
4
playframework
4
jvm
4
redis
4
cassandra
4
mysql
4
dsl
4
fp
4
validation
4
scala-native
4
scala-js
4
web
4
akka
4
sql
4
cats-effect
3
optimization
3
docker
3
http-server
3
mongodb
3
scala3
3
parsing
3
akka-http
3
jdbc
3
postgres
3
circe
3