awesome-scala
A community driven list of useful Scala libraries, frameworks and software.
https://github.com/lauris/awesome-scala
Last synced: 21 days ago
JSON representation
Books
Devops
- Essential Scala - Essential Scala is aimed at experienced developers who are encountering Scala for the first time.
- Functional and Reactive Domain Modeling
- Functional Programming for Mortals
- Functional Programming in Scala
- Functional Programming, Simplified (Scala edition)
- Get Programming with Scala - Tutorial-driven introduction to Scala
- Practical FP in Scala: A hands-on approach
- Programming in Scala
- Pure functional HTTP APIs in Scala
- Reactive Programming with Scala and Akka - Use the concepts of reactive programming to build distributed systems running on multiple nodes
- Scala Cookbook
- Scala for the Impatient - Covers most Scala features with short and easy to understand explainations.
- Scala With Cats - Learn system architecture and design using the techniques of modern functional programming with Cats
- The Type Astronaut's Guide to Shapeless
- Zionomicon - Master the dark art of creating scalable, type-safe, concurrent apps with ZIO
- Scala Cookbook
- Zionomicon - Master the dark art of creating scalable, type-safe, concurrent apps with ZIO
Commercial courses
Devops
- Foundations of Functional Programming in Scala - a professional video course with exercises covering covers functional principles, custom IO (effects) and functional design.
- Scala Algorithms - a collection of nearly 100 algorithms in pure-functional Scala with test cases, explanations and a web-based IDE. Built with http4s & Scala.js.
Communities
Devops
- Scala Ukraine - Telegram chat of Ukrainian Scala Community
Company Blogs
Devops
- Functional Works / Learn - Quality resources maintained by functional works
- Scala Times - Weekly newsletter about scala
- 47 Degrees - Functional Programming news, updates, and more.
- 47 Degrees - Functional Programming news, updates, and more.
- Functional Works / Learn - Quality resources maintained by functional works
- 47 Degrees - Functional Programming news, updates, and more.
Exercises
Devops
- S-99 - Ninety-Nine Scala Problems
- S-99 - Ninety-Nine Scala Problems
- 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 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.
- Learn-by-doing functional programming course on Scala - Covers type classes, functors, applicatives, monads, monad transformers, free monad
Misc.
Devops
- Programming Community Curated Resources for Learning Scala
- Scala @LibHunt - A community driven list of useful Scala libraries, frameworks and software
- Scala Days Conferences - A youtube channel that provides full fledged videos, recorded at Scala Days Conferences
- Scalera Blog - Blog about Scala language and its environment (howto's, good practices, tips,...). Weekly posts written in both spanish and english
- Scala @LibHunt - A community driven list of useful Scala libraries, frameworks and software
- CA Art - A small project aimed at learning Scala on intermediate level by experimenting with Cellular Automata
Podcasts
Devops
- The Scala Logs - Interviewing developers, open source contributors, subject matter experts, and the like to talk about FP, Scala, open source, and their interests.
- Scala Love - Podcast about the Scala Programming Language and its community
- CoRecursive Interviews - In-depth Interviews with software developers, often on the subject of scala libraries and functional programming.
- Scala Love - Podcast about the Scala Programming Language and its community
- Scala for Fun & Profit - Interviewing Scala users and companies.
- Scala for Fun & Profit - Interviewing Scala users and companies.
Table of Contents
Android
- **scaloid** - activity/y/pocorall/scaloid)
Archive and Compression
- SevenZ4S - activity/y/gonearewe/SevenZ4S)
Artificial Intelligence
- cilib - activity/y/ciren/cilib)
Authentication
- akka-http-session - side akka-http sessions, with optional JWT support |
- aws-request-signer - request-signer)
- OAuth2-mock-play - stups/OAuth2-mock-play)
- play-googleauth - googleauth)
- play-pac4j - pac4j)
- **play2-auth** - auth)
- **scala-oauth2-provider** - side implementation written in Scala |
- **securesocial** - activity/y/jaliss/securesocial)
Big Data
- Scrunch
- **BIDMach** - accelerated Machine Learning Library |
- **flink** - activity/y/apache/flink)
- gridscale - activity/y/openmole/gridscale)
- **kafka** - activity/y/apache/kafka)
- **alpakka-kafka** - Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka. |
- **scalding** - activity/y/twitter/scalding)
- schemer - activity/y/indix/schemer)
- **scio** - activity/y/spotify/scio)
- **spark** - A unified analytics engine for large-scale data processing |
- gallia-core - aware Scala library for data transformation |
- **nussknacker** - code tool for automating actions on real time data | Stream processing for the users. |
Command Line Interfaces
- **decline** - line parser for Scala. |
- mainargs - free library for command-line argument parsing in Scala |
- **scallop** - activity/y/scallop/scallop)
- **scopt** - activity/y/scopt/scopt)
Cryptography
- scrypto - output-hk/scrypto)
- tsec - safe general-cryptography library - https://jmcardon.github.io/tsec/ |
- jose - activity/y/blackdoor/jose)
CSV
- fm-flatfile - flatfile)
- kantan.csv - activity/y/nrinaudo/kantan.csv)
- **scala-csv** - csv)
- spata - based CSV processor for Scala |
Database
- akka-persistence-gcp-datastore - persistence-gcp-datastore is a journal and snapshot store plugin for akka-persistence using google cloud firestore in datastore mode. |
- anorm - activity/y/playframework/anorm)
- **casbah** - of-life (EOL). |
- clickhouse-scala-client - scala-client)
- couchbase-jvm-clients - core… |
- couchdb-scala - scala)
- etcd4s - activity/y/mingchuno/etcd4s)
- finagle-postgres - postgres)
- laserdisc - free Fs2 native pure FP Redis client |
- mysql-binlog-stream - io/mysql-binlog-stream)
- longevity - activity/y/longevityframework/longevity)
- lucene4s - weight convenience wrapper around Lucene to simplify complex tasks and add Scala sugar. |
- mapperdao - activity/y/kostaskougios/mapperdao)
- morpheus - safe Scala driver for SQL databases |
- neotypes - safe, asynchronous driver for neo4j |
- **phantom** - safe, reactive Scala driver for Cassandra/Datastax Enterprise |
- pulsar4s - activity/y/CleverCloud/pulsar4s)
- **zio-quill** - time Language Integrated Queries for Scala |
- reactivecouchbase-rs-core - streams |
- **ReactiveMongo** - blocking, Reactive MongoDB Driver for Scala |
- **rediscala** - blocking, Reactive Redis driver for Scala (with Sentinel support) |
- relate - activity/y/lucidsoftware/relate)
- salat - activity/y/salat/salat)
- **sangria** - graphql/sangria)
- scala-activerecord - like ORM library for Scala |
- scala-forklift - safe data migration tool for Slick, Git and beyond. |
- **scala-redis** - redis)
- scala-sql - sql)
- scalarelational - Safe framework for defining, modifying, and querying SQL databases |
- **scalikejdbc** - based DB access library for Scala developers. This library naturally wraps JDBC APIs and provides you easy-to-use APIs. |
- scanamo - activity/y/scanamo/scanamo)
- scredis - blocking, ultra-fast Scala Redis client built on top of Akka IO, used in production at Livestream |
- scruid - bank/scruid)
- shade - activity/y/monix/shade)
- **slick** - activity/y/slick/slick)
- **slick-pg** - pg)
- **squeryl** - activity/y/squeryl/squeryl)
- molecule - activity/y/scalamolecule/molecule)
- zio-redis - based redis client |
- kvs - deps/kvs)
- **doobie** - activity/y/typelevel/doobie)
- **elastic4s** - Reactive, Non Blocking, Type Safe, HTTP Client |
- squery - activity/y/sake92/squery)
- **skunk** - activity/y/typelevel/skunk)
Data Binding and Validation
- dupin - activity/y/yakivy/dupin)
- octopus - free validation |
- veto - activity/y/splink/veto)
- fields - company/fields)
Devops
- skuber - activity/y/hagay3/skuber)
Distributed Systems
- **akka** - driven applications on the JVM |
- annette - wide business applications |
- **finagle** - agnostic RPC system |
- poppet - safe RPC Scala library. |
- automorph - org/automorph)
Extensions
- Scalactic
- **Ammonite** - lihaoyi/Ammonite)
- **better-files** - files)
- blindsight - activity/y/tersesystems/blindsight)
- **cats** - activity/y/typelevel/cats)
- **chimney** - free, type-safe data transformations |
- chronoscala - 310 port of nscala_time |
- Dsl.scala - Specific Languages in Scala |
- each - activity/y/ThoughtWorksInc/each)
- **eff** - https://atnos-org.github.io/eff |
- enableIf.scala - time, like #if in C/C++ |
- **enumeratum** - safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations. |
- log4s - performance SLF4J wrapper for Scala. |
- **Monocle** - dev/Monocle)
- **nscala-time** - time |
- **quicklens** - activity/y/softwaremill/quicklens)
- **refined** - activity/y/fthomas/refined)
- **scala-async** - async)
- **scala-graph** - memory graph library aiming at editing and traversing graphs, finding cycles etc. in a user-friendly way. |
- **scala-logging** - labs/scala-logging)
- **scalameta** - activity/y/scalameta/scalameta)
- **scalaz** - activity/y/scalaz/scalaz)
- **scribe** - activity/y/outr/scribe)
- **shapeless** - activity/y/milessabin/shapeless)
- **simulacrum** - activity/y/typelevel/simulacrum)
- squid - safe metaprogramming and compilation framework for Scala |
- **tinylog** - org/tinylog)
- **util** - activity/y/twitter/util)
Functional Reactive Programming
- **fs2** - activity/y/typelevel/fs2)
- iteratee - activity/y/travisbrown/iteratee)
- **monix** - activity/y/monix/monix)
- REScala - distributed and reactive programming embedded in OO and FP programs. |
- **zio** - safe, composable library for async and concurrent programming in Scala |
Geospatial
- **geotrellis** - activity/y/locationtech/geotrellis)
- osm4scala - activity/y/simplexspatial/osm4scala)
- rtree2d - tree for ultra-fast nearest and intersection queries in plane and spherical coordinates |
- stac4s - utils/stac4s)
- franklin - activity/y/azavea/franklin)
Graphical User Interfaces
- **scalafx** - based user interfaces in Scala |
HTTP
- **akka-http** - first HTTP server/module of Akka |
- reboot - activity/y/dispatch/reboot)
- **finch** - activity/y/finagle/finch)
- **http4s** - activity/y/http4s/http4s)
- lolhttp - activity/y/criteo/lolhttp)
- **requests-scala** - lihaoyi/requests-scala)
- scalaxb - activity/y/eed3si9n/scalaxb)
- **sttp** - activity/y/softwaremill/sttp)
- **tapir** - documenting APIs |
- endpoints4s - activity/y/endpoints4s/endpoints4s)
- frontier - deps/frontier)
i18n
- scala-xgettext - framework/scala-xgettext)
- scaposer - framework/scaposer)
Image processing and image analysis
- scalismo - gravis/scalismo)
- **scrimage** - Java, Kotlin, Scala image processing library |
JavaScript
- **scala-js** - js/scala-js)
JSON
- **argonaut** - io/argonaut)
- **circe** - activity/y/circe/circe)
- diffson - activity/y/gnieh/diffson)
- **jackson-module-scala** - on module for Jackson (https://github.com/FasterXML/jackson) to support Scala-specific datatypes |
- jawn - sawn (JSON) |
- **json4s** - activity/y/json4s/json4s)
- **jsoniter-scala** - time generation of safe and ultra-fast JSON codecs + circe booster |
- json - Json, a Fast Json Parser Written in Scala |
- ninny-json - json)
- play-json - json)
- pushka - activity/y/fomkin/pushka)
- sbt-json - json)
- scala-jsonapi - jsonapi/scala-jsonapi)