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.
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 that hasn’t been updated in the past 6 months or is not awesome.
Don't modify README.md
in your pull request. It is automatically generated. Modify template.md
instead.
- Learning Scala
- Projects
- Android
- Archive and Compression
- Artificial Intelligence
- Authentication
- Authorization
- Big Data
- Command Line Interfaces
- 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
- Learning Scala
- Contributing
Name | Description | GitHub Activity |
---|
Name | Description | GitHub Activity |
---|
Database access libraries in Scala.
Name | Description | GitHub Activity |
---|
- innFactory/akka-persistence-gcp-datastore
- playframework/anorm
- mongodb/casbah
- crobox/clickhouse-scala-client
- couchbase/couchbase-jvm-clients
- beloglazov/couchdb-scala
- tpolecat/doobie
- sksamuel/elastic4s
- mingchuno/etcd4s
- finagle/finagle-postgres
- laserdisc-io/laserdisc
- laserdisc-io/mysql-binlog-stream
- longevityframework/longevity
- outr/lucene4s
- kostaskougios/mapperdao
- outworkers/morpheus
- neotypes/neotypes
- outworkers/phantom
- sksamuel/pulsar4s
- getquill/quill
- ReactiveCouchbase/ReactiveCouchbase-rs-core
- ReactiveMongo/ReactiveMongo
- etaty/rediscala
- lucidsoftware/relate
- salat/salat
- sangria-graphql/sangria
- aselab/scala-activerecord
- lastland/scala-forklift
- debasishg/scala-redis
- wangzaixiang/scala-sql
- outr/scalarelational
- scalikejdbc/scalikejdbc
- guardian/scanamo
- Livestream/scredis
- ing-bank/scruid
- alexandru/shade
- slick/slick
- tminglei/slick-pg
- sake92/squery
- squeryl/squeryl
- scalamolecule/molecule
- zio/zio-redis
- tpolecat/skunk
- zero-deps/kvs
Name | Description | GitHub Activity |
---|
Libraries for creation of graphical user interfaces
Name | Description | GitHub Activity |
---|
Scala frameworks for web development.
Name | Description | GitHub Activity |
---|
- analogweb/analogweb-scala
- mesosphere/chaos
- com-lihaoyi/cask
- tumblr/colossus
- twitter/finatra
- lift/framework
- dvarelap/peregrine
- playframework/playframework
- splink/pagelets
- nafg/reactive
- japgolly/scalajs-react
- scalatra/scalatra
- sake92/sharaf
- skinny-framework/skinny-framework
- unfiltered/unfiltered
- xitrum-framework/xitrum
- outr/youi
Scala libraries for Reactive Web development
Name | Description | GitHub Activity |
---|
Scala libraries for data binding and validation
Name | Description | GitHub Activity |
---|
Scala libraries for i18n.
Name | Description | GitHub Activity |
---|
Libraries for implementing authentications schemes.
Name | Description | GitHub Activity |
---|
- softwaremill/akka-http-session
- ticofab/aws-request-signer
- zalando/OAuth2-mock-play
- guardian/play-googleauth
- pac4j/play-pac4j
- t2v/play2-auth
- nulab/scala-oauth2-provider
- jaliss/securesocial
Cryptography and Encryption Libraries.
Name | Description | GitHub Activity |
---|
Libraries for code testing.
Name | Description | GitHub Activity |
---|
- bencherdev/bencher
- agourlay/cornichon
- gatling/gatling
- monix/minitest
- mockito/mockito-scala
- scalameta/munit
- rickynils/scalacheck
- scalameter/scalameter
- paulbutcher/ScalaMock
- scalaprops/scalaprops
- scalatest/scalatest
- xitrum-framework/scalive
- etorreborre/specs2
- stryker-mutator/stryker4s
- disneystreaming/weaver-test
- testcontainers/testcontainers-scala
- lihaoyi/utest
Libraries for work with json.
Name | Description | GitHub Activity |
---|
- argonaut-io/argonaut
- sirthias/borer
- travisbrown/circe
- gnieh/diffson
- FasterXML/jackson-module-scala
- non/jawn
- json4s/json4s
- plokhotnyuk/jsoniter-scala
- nestorpersist/json
- nrktkt/ninny-json
- playframework/play-json
- fomkin/pushka
- battermann/sbt-json
- scala-jsonapi/scala-jsonapi
- gzoller/ScalaJack
- spray/spray-json
- sake92/tupson
- zio/zio-json
Libraries for work with YAML.
Name | Description | GitHub Activity |
---|
Libraries for work with CSV.
Name | Description | GitHub Activity |
---|
Libraries for serializing and deserializing data for storage or transport.
Name | Description | GitHub Activity |
---|
- malcolmgreaves/avro-codegen
- sirthias/borer
- sksamuel/avro4s
- twitter/chill
- msgpack/msgpack-scala
- scalapb/ScalaPB
- scodec/scodec
- twitter/scrooge
- lihaoyi/upickle
- zero-deps/proto
Libraries for scientific computing, data analysis and numerical processing.
Name | Description | GitHub Activity |
---|
- twitter/algebird
- axlelang/axle
- intel-analytics/BigDL
- scalanlp/breeze
- Clustering4Ever/Clustering4Ever
- picnicml/doddle-model
- p2t2/figaro
- to-ithaca/libra
- anskarl/LoMRF
- openmole/mgo MLLib | Machine Learning framework for Spark |
- SciScala/NDScala
- botkop/numsca
- EmergentOrder/ONNX-Scala
- openmole/openmole
- vagmcs/Optimus OscaR | a Scala toolkit for solving Operations Research problems |
- PoslavskySV/rings
- haifengl/smile
- andypetrella/spark-notebook
- non/spire
- garyKeorkunian/squants
- mrdimosthenis/Synapses
- eaplatanios/tensorflow_scala
- apache/zeppelin
- JohnSnowLabs/spark-nlp
- HexagonNico/VecMatLib
Name | Description | GitHub Activity |
---|
- BIDData/BIDMach
- apache/flink
- openmole/gridscale
- apache/kafka
- akka/reactive-kafka
- twitter/scalding
- indix/schemer
- spotify/scio Scrunch | A Scala wrapper for Apache Crunch which provides a framework for writing, testing, and running MapReduce pipelines. |
- apache/spark
- indix/sparkplug
- Stratio/sparkta
- twitter/summingbird
- vegas-viz/Vegas
- galliaproject/gallia-core
- TouK/nussknacker
Libraries for creation of command line interfaces
Name | Description | GitHub Activity |
---|
2D and 3D image processing and image analysis
Name | Description | GitHub Activity |
---|
Name | Description | GitHub Activity |
---|
Event streams, signals, observables, etc.
Name | Description | GitHub Activity |
---|
- functional-streams-for-scala/fs2
- travisbrown/iteratee
- monix/monix
- storm-enroute/reactors
- reactor/reactor-scala-extensions
- rescala-lang/REScala
- ReactiveX/RxScala
- lihaoyi/scala.rx
- scalaz/scalaz-zio
- Primetalk/SynapseGrid
- vert-x3/vertx-lang-scala
- wireapp/wire-signals
Modularization of applications, dependency injection, etc.
Name | Description | GitHub Activity |
---|
- wvlet/airframe
- 7mind/izumi
- adamw/macwire
- codingwell/scala-guice
- scaldi/scaldi
- xitrum-framework/sclasner
- dickwall/subcut
- yakivy/jam
Libraries and frameworks for writing distributed applications.
Name | Description | GitHub Activity |
---|
- akka/akka
- levkhomich/akka-tracing
- annetteplatform/annette
- stephenmcd/curiodb
- twitter/finagle
- xitrum-framework/glokka
- lagom/lagom
- parapet-io/parapet
- yakivy/poppet
- reactors-io/reactors
- automorph-org/automorph
Scala extensions.
Name | Description | GitHub Activity |
---|
- lihaoyi/Ammonite
- pathikrit/better-files
- tersesystems/blindsight
- twitter/cassovary
- typelevel/cats
- scalalandio/chimney
- opt-tech/chronoscala
- ThoughtWorksInc/Dsl.scala
- ThoughtWorksInc/each
- atnos-org/eff
- ThoughtWorksInc/enableIf.scala
- lloydmeta/enumeratum
- Thangiee/Freasy-Monad
- ISCPIF/freedsl
- frees-io/freestyle
- scala-hamsters/hamsters
- maxcellent/lamma
- xerial/larray
- Log4s/log4s
- 7mind/izumi
- julien-truffaut/Monocle
- nscala-time/nscala-time
- adamw/quicklens
- scala-records/scala-records
- fthomas/refined
- scala/async
- scala-graph/scala-graph
- lightbend/Scala-Logging
- scalameta/scalameta
- scalaz/scalaz
- outr/scribe
- milessabin/shapeless
- mpilquist/simulacrum
- epfldata/squid
- pmwmedia/tinylog
- twitter/util
Projects that don't fit into any specific category.
Name | Description | GitHub Activity |
---|
- aossie/Agora | Library of vote-counting algorithms for elections. |
- lihaoyi/Ammonite
- aws4s/aws4s
- softwaremill/bootzooka
- ACINQ/eclair
- lihaoyi/fansi
- ColOfAbRiX/figlet4s
- laserdisc-io/fs2-aws
- toknapp/google4s
- EckerdCollege/google-api-scala
- outr/mailgun4s
- dvgica/managerial
- outr/media4s
- miniboxing/miniboxing-plugin
- marianogappa/ostinato
- iheartradio/play-swagger
- lihaoyi/pprint
- pureconfig/pureconfig
- marconilanna/REPLesent
- sirthias/scala-ssh
- nbronson/scala-stm
- aossie/Scavenger | An experimental automated theorem prover. |
- allawala/service-chassis
- sirthias/spliff
- lambdaworks/scountries
- lambdaworks/scurl-detector
- aptusproject/aptus-core
Scala libraries and wrappers for Android development.
Name | Description | GitHub Activity |
---|
Scala libraries and wrappers for HTTP clients.
Name | Description | GitHub Activity |
---|
- akka/akka-http
- dispatch/reboot
- finagle/finch
- daviddenton/fintrospect
- http4s/http4s
- outr/jefe
- criteo/lolhttp
- lihaoyi/requests-scala
- hmil/RosHTTP
- scalaj/scalaj-http
- eed3si9n/scalaxb
- softwaremill/sttp
- softwaremill/tapir
- endpoints4s/endpoints4s
- zero-deps/frontier
Scala libraries for interactions with the Web of Data, and other RDF tools.
Name | Description | GitHub Activity |
---|
Scala libraries for gathering metrics and monitoring applications.
Name | Description | GitHub Activity |
---|
Scala libraries for creating parsers.
Name | Description | GitHub Activity |
---|
- tpolecat/atto
- lihaoyi/fastparse
- sirthias/parboiled2
- scala/scala-parser-combinators
- typelevel/cats-parse
- epfl-lara/scallion
Sbt plugins to make your life easier.
Name | Description | GitHub Activity |
---|
- oleg-py/better-monadic-for
- coursier/coursier
- scalameta/mdoc
- ThoughtWorksInc/sbt-api-mappings
- valydia/sbt-apidoc
- sbt/sbt-assembly
- sbt/sbt-buildinfo
- olafurpg/sbt-ci-release
- albuch/sbt-dependency-check
- marcuslonnberg/sbt-docker
- tkawachi/sbt-doctest
- sbt/sbt-ghpages
- sbt/sbt-groll
- sbt/sbt-header
- sake92/sbt-hepek
- Jetbrains/sbt-ide-settings
- ktoso/sbt-jmh
- 47deg/sbt-microsites
- lightbend/mima
- sbt/sbt-native-packager
- xerial/sbt-pack
- sbt/sbt-pgp
- sbt/sbt-release
- spray/sbt-revolver
- ThoughtWorksInc/sbt-scala-js-map
- scalameta/sbt-scalafmt
- scoverage/sbt-scoverage
- sbt/sbt-site
- xerial/sbt-sonatype
- sbt/sbt-unidoc
- rtimush/sbt-updates
- typesafehub/sbteclipse
- softwaremill/scala-clippy
- tek/splain
- tpolecat/tut
- earldouglas/xsbt-web-plugin
- shmishleniy/sbt-deploy-ssh
- sbt/sbt-git
- zero-deps/sbt-git
XML and HTML generation and processing
Name | Description | GitHub Activity |
---|
Name | Description | GitHub Activity |
---|
JavaScript generation and interop libraries.
Name | Description | GitHub Activity |
---|
Name | Description | GitHub Activity |
---|
Web templating engines.
Name | Description | GitHub Activity |
---|
Name | Description | GitHub Activity |
---|
- JohnReedLOL/scala-trace-debug
- scalacenter/bloop
- codacy/codacy-scalameta
- coursier/coursier
- marianobarrios/dregex
- Sizmek/fast-string-interpolator
- Atry/fastring
- gitbucket/gitbucket
- foundweekends/giter8
- scalameta/metals
- lihaoyi/mill
- JohnReedLOL/pos
- sbt/sbt
- scalacenter/scalafix Scalafmt | Code formatter for Scala |
- scala-ide/scalariform
- scalastyle/scalastyle
- lihaoyi/Scalatex
- sksamuel/scapegoat
- puffnfresh/wartremover
- sake92/stone
- sake92/scalajs-router
- BotTech/scala2plantuml
Libraries to aid with geospatial calculations and artifacts.
Name | Description | GitHub Activity |
---|
- locationtech/geotrellis
- angelcervera/osm4scala
- Sizmek/rtree2d
- locationtech/sfcurve
- azavea/stac4s - types and basic functionality for working with SpatioTemporal Asset Catalogs
- azavea/franklin - A SpatioTemporal Asset Catalog API and OGC API Features compliant web service
DevOps related tools and libraries.
Name | Description | GitHub Activity |
---|
Nice books, blogs and other resources to learn Scala
- Essential Scala by Noel Welsh and Dave Gurnell - Essential Scala is aimed at experienced developers who are encountering Scala for the first time.
- Functional and Reactive Domain Modeling by Debasish Ghosh
- Functional Programming for Mortals by Sam Halliday
- Functional Programming in Scala by Paul Chiusano and Runar Bjarnason
- Functional Programming, Simplified (Scala edition) by Alvin Alexander
- Get Programming with Scala by Daniela Sfregola - Tutorial-driven introduction to Scala
- Practical FP in Scala: A hands-on approach by Gabriel Volpe
- Programming in Scala by Martin Odersky, Lex Spoon, and Bill Venners
- Pure functional HTTP APIs in Scala by Jens Grassel
- Reactive Programming with Scala and Akka - Use the concepts of reactive programming to build distributed systems running on multiple nodes
- Scala Cookbook by Alvin Alexander
- Scala for the Impatient by Cay Horstmann - Covers most Scala features with short and easy to understand explainations.
- Scala With Cats by Noel Welsh and Dave Gurnell - Learn system architecture and design using the techniques of modern functional programming with Cats
- The Type Astronaut's Guide to Shapeless by Dave Gurnell
- Zionomicon by John A. De Goes, Adam Fraser - Master the dark art of creating scalable, type-safe, concurrent apps with ZIO
- 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.
- Learn-by-doing functional programming course on Scala - Covers type classes, functors, applicatives, monads, monad transformers, free monad
- A Tour of Scala - Bite-sized introductions to some of the core language concepts.
- Functional Programming in Scala - Coursera Specialization (5 courses) created by Martin Odersky et al. at the EPFL (Ecole polytechnique fédérale de Lausanne).
- Resources by Dr. Mark Lewis >> Website | Youtube Playlists
- Demos and Examples in Scala (Chinese) ★ 923 ⧗ 2 - repo of sample Scala library usage, written in Chinese
- Introduction to programming with dependent types in Scala - Video Course by Dmytro Mitin
- Scala Collections Cookbook - Scala collections introduction. written in Chinese.
- Free Scala Courses - A curated list of free Scala courses.
- Clean Architecture Example - A step-by-step guide to develop an application using Clean Architecture in Scala.
- 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.
- http://lihaoyi.com
- http://warski.org/blog
- https://degoes.net/articles
- http://eed3si9n.com/category/tags/scala
- https://danielwestheide.com/tags/scala
- https://kubuszok.com/tags/#scala
- http://debasishg.blogspot.com
- http://appliedscala.com/blog
- http://blog.higher-order.com
- http://ktoso.github.io/scala-types-of-types
- http://scalaprof.blogspot.com
- http://torre.me.uk/docs/scala
- https://alvinalexander.com
- https://blog.bruchez.name/search/label/scala
- https://github.com/lemastero/scala_typeclassopedia
- https://pchiusano.github.io
- https://beyondthelines.net
- https://manuel.bernhardt.io/blog
- Functional Works / Learn - Quality resources maintained by functional works
- http://allaboutscala.com/
- http://enear.github.io/
- https://blog.knoldus.com/tag/scala/
- https://blog.scalac.io/tags/Scala/
- https://blog.softwaremill.com/tagged/scala
- https://medium.com/disney-streaming/tagged/thisweekinscala
- https://www.codacy.com/blog/
- Scala Times - Weekly newsletter about scala
- 47 Degrees - Functional Programming news, updates, and more.
- 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 for Fun & Profit - Interviewing Scala users and companies.
- Scala Ukraine - Telegram chat of Ukrainian Scala Community
- Programming Community Curated Resources for Learning Scala
- 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
- List of Scala Online Courses - A list of free and paid Scala online courses by Classpert, An online course search and comparison website
- Scala Days Conferences - A youtube channel that provides full fledged videos, recorded at Scala Days Conferences
- CA Art - A small project aimed at learning Scala on intermediate level by experimenting with Cellular Automata