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 208747β
24556π΄
awesome-python). Other amazingly awesome lists can be found in the 31372β
3535π΄
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 |
---|---|---|
44β 8π΄ SevenZ4S) |
SevenZip library for Scala, easy to use. |
Name | Description | GitHub Activity |
---|---|---|
123β 102π΄ cilib) |
Typesafe, purely functional Computational Intelligence |
Database access libraries in Scala.
Name | Description | GitHub Activity |
---|---|---|
19β 3π΄ akka-persistence-gcp-datastore) |
akka-persistence-gcp-datastore is a journal and snapshot store plugin for akka-persistence using google cloud firestore in datastore mode. | |
236β 76π΄ anorm) |
The Anorm database library | |
512β 134π΄ casbah) |
Casbah is now officially end-of-life (EOL). | |
111β 23π΄ clickhouse-scala-client) |
Clickhouse Scala Client with Reactive Streams support | |
44β 36π΄ couchbase-jvm-clients) |
The Couchbase Monorepo for JVM Clients: Java, Scala, io-core⦠| |
65β 19π΄ couchdb-scala) |
A purely functional Scala client for CouchDB | |
2129β 348π΄ doobie) |
Functional JDBC layer for Scala. | |
1632β 690π΄ elastic4s) |
Elasticsearch Scala Client - Reactive, Non Blocking, Type Safe, HTTP Client | |
31β 4π΄ etcd4s) |
Scala etcd client implementing V3 APIs | |
81β 39π΄ finagle-postgres) |
PostgreSQL protocol support for Finagle | |
92β 14π΄ laserdisc) |
A Future-free Fs2 native pure FP Redis client | |
14β 5π΄ mysql-binlog-stream) |
None | |
102β 6π΄ longevity) |
A Persistence Framework for Scala and NoSQL | |
54β 18π΄ lucene4s) |
Light-weight convenience wrapper around Lucene to simplify complex tasks and add Scala sugar. | |
14β 4π΄ mapperdao) |
A Scala ORM library | |
101β 6π΄ morpheus) |
Reactive type-safe Scala driver for SQL databases | |
162β 32π΄ neotypes) |
Scala lightweight, type-safe, asynchronous driver for neo4j | |
1046β 186π΄ phantom) |
Schema safe, type-safe, reactive Scala driver for Cassandra/Datastax Enterprise | |
224β 45π΄ pulsar4s) |
Idiomatic, typesafe, and reactive Scala client for Apache Pulsar | |
2140β 346π΄ zio-quill) |
Compile-time Language Integrated Queries for Scala | |
26β 10π΄ reactivecouchbase-rs-core) |
New ReactiveCouchbase driver using reactive-streams | |
846β 231π΄ ReactiveMongo) |
π Non-blocking, Reactive MongoDB Driver for Scala | |
789β 143π΄ rediscala) |
Non-blocking, Reactive Redis driver for Scala (with Sentinel support) | |
160β 16π΄ relate) |
Performant database access in Scala | |
485β 108π΄ salat) |
Salat is a simple serialization library for case classes. | |
1967β 221π΄ sangria) |
Scala GraphQL implementation | |
322β 31π΄ scala-activerecord) |
ActiveRecord-like ORM library for Scala | |
187β 31π΄ scala-forklift) |
Type-safe data migration tool for Slick, Git and beyond. | |
1020β 219π΄ scala-redis) |
A scala library for connecting to a redis server, or a cluster of redis nodes using consistent hashing on the client side. | |
89β 20π΄ scala-sql) |
scala SQL api | |
58β 7π΄ scalarelational) |
Type-Safe framework for defining, modifying, and querying SQL databases | |
1261β 226π΄ scalikejdbc) |
A tidy SQL-based DB access library for Scala developers. This library naturally wraps JDBC APIs and provides you easy-to-use APIs. | |
314β 124π΄ scanamo) |
Simpler DynamoDB access for Scala | |
153β 16π΄ scredis) |
Non-blocking, ultra-fast Scala Redis client built on top of Akka IO, used in production at Livestream | |
115β 29π΄ scruid) |
Scala + Druid: Scruid. A library that allows you to compose queries in Scala, and parse the result back into typesafe classes. | |
106β 19π΄ shade) |
Memcached client for Scala | |
2639β 609π΄ slick) |
Slick (Scala Language Integrated Connection Kit) is a modern database query and access library for Scala | |
836β 181π΄ slick-pg) |
Slick extensions for PostgreSQL | |
582β 137π΄ squeryl) |
A Scala DSL for talking with databases with minimum verbosity and maximum type safety | |
13β 0π΄ molecule) |
Non-blocking asynchronous domain-customizable database query language for Scala and Scala.js against the Datomic database. | |
119β 63π΄ zio-redis) |
A ZIO-based redis client | |
1553β 157π΄ skunk) |
A data access library for Scala + Postgres. | |
23β 2π΄ kvs) |
Highly available distributed strong eventual consistent and sequentially consistent storage with feeds and search |
Name | Description | GitHub Activity |
---|---|---|
232β 73π΄ op-rabbit) |
The Opinionated RabbitMQ Library for Scala and Akka |
Libraries for creation of graphical user interfaces
Name | Description | GitHub Activity |
---|---|---|
663β 68π΄ scalafx) |
ScalaFX simplifies creation of JavaFX-based user interfaces in Scala |
Scala frameworks for web development.
Name | Description | GitHub Activity |
---|---|---|
13β 2π΄ analogweb-scala) |
Tiny High Performance HTTP Server for Scala | |
250β 36π΄ chaos) |
A lightweight framework for writing REST services in Scala. | |
509β 53π΄ cask) |
Cask: a Scala HTTP micro-framework | |
1143β 96π΄ colossus) |
I/O and Microservice library for Scala | |
2272β 405π΄ finatra) |
Fast, testable, Scala services built on TwitterServer and Finagle | |
1267β 272π΄ framework) |
Lift Framework | |
14β 4π΄ peregrine) |
Async lightweight Scala web framework | |
12514β 4092π΄ playframework) |
Play Framework | |
76β 5π΄ pagelets) |
A module for the Play Framework to build highly modular applications | |
215β 39π΄ reactive) |
A simple FRP library and a web UI framework built on it | |
1638β 231π΄ scalajs-react) |
Facebook's React on Scala.JS | |
2636β 335π΄ scalatra) |
Tiny Scala high-performance, async web framework, inspired by Sinatra | |
736β 73π΄ skinny-framework) |
π "Scala on Rails" - A full-stack web app framework for rapid development in Scala | |
709β 114π΄ unfiltered) |
A toolkit for servicing HTTP requests in Scala | |
446β 52π΄ xitrum) |
Async and clustered Scala web framework and HTTP(S) server | |
209β 28π΄ youi) |
Next generation user interface and application development in Scala and Scala.js for web, mobile, and desktop. |
Scala libraries for Reactive Web development
Name | Description | GitHub Activity |
---|---|---|
1584β 108π΄ Binding.scala) |
Reactive data-binding for Scala | |
579β 50π΄ korolev) |
Single Page Applications running on the server side. | |
444β 36π΄ udash-core) |
Scala framework for building beautiful and maintainable web applications. | |
119β 43π΄ vertx-lang-scala) |
Vert.x for Scala |
Scala libraries for data binding and validation
Name | Description | GitHub Activity |
---|---|---|
531β 55π΄ accord) |
Accord: A sane validation library for Scala | |
42β 2π΄ dupin) |
Minimal, idiomatic, customizable validation Scala library. | |
151β 24π΄ octopus) |
Scala library for boilerplate-free validation | |
6β 1π΄ veto) |
If you don't agree with the data | |
47β 4π΄ fields) |
Scala validation library |
Scala libraries for i18n.
Name | Description | GitHub Activity |
---|---|---|
25β 11π΄ scala-xgettext) |
Scala compiler plugin that acts like GNU xgettext command to extract i18n strings in Scala source code files to Gettext .po file | |
38β 6π΄ scaposer) |
GNU Gettext .po file loader for Scala |
Libraries for implementing authentications schemes.
Name | Description | GitHub Activity |
---|---|---|
438β 59π΄ akka-http-session) |
Web & mobile client-side akka-http sessions, with optional JWT support | |
21β 15π΄ aws-request-signer) |
Scala library to sign HTTP requests to AWS services. | |
25β 5π΄ OAuth2-mock-play) |
An implementation of an OAuth2 server designed for mocking/testing | |
34β 11π΄ play-googleauth) |
Simple play module for authenticating against Google | |
401β 99π΄ play-pac4j) |
Security library for Play framework 2 in Java and Scala: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT... | |
609β 142π΄ play2-auth) |
Play2.x Authentication and Authorization module | |
537β 96π΄ scala-oauth2-provider) |
OAuth 2.0 server-side implementation written in Scala | |
1191β 514π΄ securesocial) |
A module that provides OAuth, OAuth2 and OpenID authentication for Play Framework applications |
Cryptography and Encryption Libraries.
Name | Description | GitHub Activity |
---|---|---|
201β 52π΄ scrypto) |
Cryptographic primitives for Scala | |
349β 55π΄ tsec) |
Type-safe general-cryptography library - https://jmcardon.github.io/tsec/ | |
15β 5π΄ jose) |
Extensible JOSE library for Scala |
Libraries for code testing.
Name | Description | GitHub Activity |
---|---|---|
225β 29π΄ cornichon) |
Scala DSL for testing HTTP JSON API | |
6298β 1175π΄ gatling) |
Modern Load Testing as Code | |
177β 34π΄ minitest) |
The super light testing library for Scala and Scala.js | |
349β 57π΄ mockito-scala) |
Mockito for Scala language | |
422β 85π΄ munit) |
Scala testing library with actionable errors and extensible APIs | |
1933β 405π΄ scalacheck) |
Property-based testing for Scala | |
505β 72π΄ scalameter) |
Microbenchmarking and performance regression testing framework for the JVM platform. | |
501β 98π΄ ScalaMock) |
Native Scala mocking framework | |
276β 22π΄ scalaprops) |
property based testing library for Scala | |
1144β 334π΄ scalatest) |
A testing tool for Scala and Java developers | |
197β 12π΄ scalive) |
Connect a Scala REPL to running JVM processes without any prior setup | |
736β 224π΄ specs2) |
Software Specifications for Scala | |
194β 35π΄ stryker4s) |
Mutation testing for Scala | |
430β 47π΄ weaver-test) |
A test framework that runs everything in parallel. | |
617β 122π΄ testcontainers-scala) |
Docker containers for testing in scala | |
479β 80π΄ utest) |
A simple testing framework for Scala |
Libraries for work with json.
Name | Description | GitHub Activity |
---|---|---|
546β 112π΄ argonaut) |
Purely functional JSON parser and library in scala. | |
219β 12π΄ borer) |
Efficient CBOR and JSON (de)serialization in Scala | |
2476β 532π΄ circe) |
Yet another JSON library for Scala | |
307β 53π΄ diffson) |
A scala diff/patch library for Json | |
495β 142π΄ jackson-module-scala) |
Add-on module for Jackson (https://github.com/FasterXML/jackson) to support Scala-specific datatypes | |
432β 73π΄ jawn) |
Jawn is for parsing jay-sawn (JSON) | |
1472β 329π΄ json4s) |
JSON library | |
715β 92π΄ jsoniter-scala) |
Scala macros for compile-time generation of safe and ultra-fast JSON codecs | |
11β 11π΄ json) |
Persist-Json, a Fast Json Parser Written in Scala | |
21β 5π΄ ninny-json) |
JSON typeclasses that know the difference between null and absent fields | |
356β 133π΄ play-json) |
The Play JSON library | |
74β 10π΄ pushka) |
ABANDONED Pure Scala serialization library with annotations | |
31β 4π΄ sbt-json) |
sbt plugin that generates Scala case classes for easy, statically typed and implicit access of JSON data e.g. from API responses | |
107β 29π΄ scala-jsonapi) |
Scala support library for integrating the JSON API spec with Spray, Play! or Circe | |
111β 9π΄ ScalaJack) |
Fast JSON parser/generator for Scala | |
970β 190π΄ spray-json) |
A lightweight, clean and simple JSON implementation in Scala | |
402β 140π΄ zio-json) |
Fast, secure JSON library with tight ZIO integration. |
Libraries for work with YAML.
Name | Description | GitHub Activity |
---|---|---|
98β 34π΄ moultingyaml) |
Scala wrapper for SnakeYAML |
Libraries for work with CSV.
Name | Description | GitHub Activity |
---|---|---|
11β 3π΄ fm-flatfile) |
Scala Library for Reading Flat File Data (CSV/TSV/XLS/XLSX) | |
346β 36π΄ kantan.csv) |
CSV handling library for Scala | |
686β 142π΄ scala-csv) |
CSV Reader/Writer for Scala | |
27β 8π΄ spata) |
Functional, stream-based CSV processor for Scala |
Libraries for serializing and deserializing data for storage or transport.
Name | Description | GitHub Activity |
---|---|---|
9β 4π΄ avro-codegen) |
Scala code generator for Avro schemas. | |
219β 12π΄ borer) |
Efficient CBOR and JSON (de)serialization in Scala | |
715β 236π΄ avro4s) |
Avro schema generation and serialization / deserialization for Scala | |
609β 155π΄ chill) |
Scala extensions for the Kryo serialization library | |
94β 29π΄ msgpack-scala) |
MessagePack serializer implementation for Scala / msgpack.org[Scala] | |
1285β 278π΄ ScalaPB) |
Protocol buffer compiler for Scala. | |
801β 108π΄ scodec) |
Scala combinator library for working with binary data | |
787β 243π΄ scrooge) |
A Thrift parser/generator | |
701β 157π΄ upickle) |
uPickle: a simple, fast, dependency-free JSON & Binary (MessagePack) serialization library for Scala | |
34β 3π΄ proto) |
Lightweight and fast serialization library for Scala 2/3 based on Protocol Buffers with macros |
Libraries for scientific computing, data analysis and numerical processing.
Name | Description | GitHub Activity |
---|---|---|
2284β 343π΄ algebird) |
Abstract Algebra for Scala | |
66β 8π΄ axle) |
Axle Domain Specific Language for Scientific Cloud Computing and Visualization | |
6123β 1210π΄ BigDL) |
Building Large-Scale AI Applications for Distributed Big Data | |
3437β 692π΄ breeze) |
Breeze is a numerical processing library for Scala. | |
128β 13π΄ Clustering4Ever) |
C4E, a JVM friendly library written in Scala for both local and distributed (Spark) Clustering. | |
137β 23π΄ doddle-model) |
π° doddle-model: machine learning in Scala. | |
755β 153π΄ figaro) |
Figaro Programming Language and Core Libraries | |
198β 23π΄ libra) |
A dimensional analysis library based on dependent types | |
81β 20π΄ LoMRF) |
LoMRF is an open-source implementation of Markov Logic Networks | |
71β 3π΄ mgo) |
Purely functional genetic algorithms for multi-objective optimisation | π MLLib |
47β 6π΄ NDScala) |
N-dimensional arrays in Scala 3. Think NumPy ndarray, but type-safe over shapes, array/axis labels & numeric data types | |
183β 17π΄ numsca) |
numsca is numpy for scala | |
136β 9π΄ onnx-scala) |
An ONNX (Open Neural Network eXchange) API and backend for typeful, functional deep learning in Scala 3 | |
140β 37π΄ openmole) |
Workflow engine for exploration of simulation models using high throughput computing | |
141β 28π΄ Optimus) |
Optimus is a mathematical programming library for Scala. | π OscaR |
72β 10π΄ rings) |
Rings: efficient JVM library for polynomial rings | |
5944β 1122π΄ smile) |
Statistical Machine Intelligence & Learning Engine | |
3148β 654π΄ spark-notebook) |
Interactive and Reactive Data Science using Scala and Spark. | |
1757β 242π΄ spire) |
Powerful new number types and numeric abstractions for Scala. | |
911β 121π΄ squants) |
The Scala API for Quantities, Units of Measure and Dimensional Analysis | |
69β 6π΄ Synapses) |
A group of neural-network libraries for functional and mainstream languages | |
934β 96π΄ tensorflow_scala) |
TensorFlow API for the Scala Programming Language | |
6293β 2783π΄ zeppelin) |
Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more. | |
3724β 704π΄ spark-nlp) |
State of the Art Natural Language Processing |
Name | Description | GitHub Activity |
---|---|---|
912β 172π΄ BIDMach) |
CPU and GPU-accelerated Machine Learning Library | |
23342β 13030π΄ flink) |
Apache Flink | |
27β 8π΄ gridscale) |
Scala library for accessing various file, batch systems, job schedulers and grid middlewares. | |
27629β 13581π΄ kafka) |
Mirror of Apache Kafka | |
1416β 386π΄ alpakka-kafka) |
Alpakka Kafka connector - Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka. | |
3476β 703π΄ scalding) |
A Scala API for Cascading | |
112β 6π΄ schemer) |
Schema registry for CSV, TSV, JSON, AVRO and Parquet schema. Supports schema inference and GraphQL API. | |
2529β 510π΄ scio) |
A Scala API for Apache Beam and Google Cloud Dataflow. | |
Scrunch | A Scala wrapper for Apache Crunch which provides a framework for writing, testing, and running MapReduce pipelines. | |
38623β 28007π΄ spark) |
Apache Spark - A unified analytics engine for large-scale data processing | |
28β 2π΄ sparkplug) |
Spark package to "plug" holes in data using SQL based rules β‘οΈ π | |
524β 197π΄ sparta) |
Real Time Analytics and Data Pipelines based on Spark Streaming | |
2136β 267π΄ summingbird) |
Streaming MapReduce with Scalding and Storm | |
730β 99π΄ Vegas) |
The missing MatPlotLib for Scala + Spark | |
84β 4π΄ gallia-core) |
A schema-aware Scala library for data transformation |
Libraries for creation of command line interfaces
Name | Description | GitHub Activity |
---|---|---|
105β 11π΄ clist) |
Command Line Interface Scala Toolkit | |
637β 68π΄ decline) |
A composable command-line parser for Scala. | |
176β 16π΄ mainargs) |
A small, convenient, dependency-free library for command-line argument parsing in Scala | |
673β 58π΄ scallop) |
a simple Scala CLI parsing library | |
1427β 164π΄ scopt) |
command line options parsing for Scala |
2D and 3D image processing and image analysis
Name | Description | GitHub Activity |
---|---|---|
20β 3π΄ scala-phash) |
Image comparison by hash codes | |
242β 66π΄ scalismo) |
Scalable Image Analysis and Shape Modelling | |
1042β 140π΄ scrimage) |
Java, Scala and Kotlin image processing library |
Name | Description | GitHub Activity |
---|---|---|
84β 7π΄ Chromaprint.scala) |
Chromaprint/AcoustID audio fingerprinting for the JVM | |
?β ?π΄ ScalaCollider) |
A Scala sound synthesis library based on SuperCollider. |
Event streams, signals, observables, etc.
Name | Description | GitHub Activity |
---|---|---|
2331β 591π΄ fs2) |
Compositional, streaming I/O library for Scala | |
182β 17π΄ iteratee) |
Iteratees for Cats | |
1920β 243π΄ monix) |
Asynchronous, Reactive Programming for Scala and Scala.js. | |
4β 1π΄ reactors) |
A concurrent reactive programming framework. | |
52β 15π΄ reactor-scala-extensions) |
A scala extension for Project Reactor's Flux and Mono | |
89β 28π΄ REScala) |
REScala - reactive programming in OO applications | |
884β 121π΄ RxScala) |
RxScala β Reactive Extensions for Scala β a library for composing asynchronous and event-based programs using observable sequences | |
985β 79π΄ scala.rx) |
An experimental library for Functional Reactive Programming in Scala | |
4007β 1251π΄ zio) |
ZIO β A type-safe, composable library for async and concurrent programming in Scala | |
124β 8π΄ SynapseGrid) |
SynapseGrid is a framework for constructing dynamic low latency data flow systems. | |
119β 43π΄ vertx-lang-scala) |
Vert.x for Scala | |
?β ?π΄ wire-signals) |
A small and effective event-handling library for Scala |
Modularization of applications, dependency injection, etc.
Name | Description | GitHub Activity |
---|---|---|
626β 62π΄ airframe) |
Essential Building Blocks for Scala | |
607β 64π΄ izumi) |
Productivity-oriented collection of lightweight fancy stuff for Scala toolchain | |
1255β 78π΄ macwire) |
Lightweight and Nonintrusive Scala Dependency Injection Library | |
339β 44π΄ scala-guice) |
Scala extensions for Google Guice | |
287β 26π΄ scaldi) |
Lightweight Scala Dependency Injection Library | |
10β 0π΄ sclasner) |
Scala classpath scanner | |
386β 29π΄ subcut) |
Scala Uniquely Bound Classes Under Traits | |
60β 3π΄ jam) |
Incredibly simple DI Scala library. |
Libraries and frameworks for writing distributed applications.
Name | Description | GitHub Activity |
---|---|---|
12954β 3587π΄ akka) |
Build highly concurrent, distributed, and resilient message-driven applications on the JVM | |
310β 32π΄ akka-tracing) |
A distributed tracing extension for Akka. Provides integration with Play framework, Spray and Akka HTTP. | |
18β 1π΄ annette) |
Platform to build distributed, scalable, enterprise-wide business applications | |
510β 47π΄ curiodb) |
Distributed NoSQL Database | |
8752β 1445π΄ finagle) |
A fault tolerant, protocol-agnostic RPC system | |
56β 4π΄ glokka) |
Library to register and lookup actors by names in an Akka cluster | |
2632β 634π΄ lagom) |
Reactive Microservices for the JVM | |
136β 7π΄ parapet) |
A purely functional library to build distributed and event-driven systems | |
25β 2π΄ poppet) |
Minimal, type-safe RPC Scala library. | |
259β 32π΄ reactors) |
A foundational framework for distributed programming. |
Scala extensions.
Name | Description | GitHub Activity |
---|---|---|
2589β 365π΄ Ammonite) |
Scala Scripting | |
1461β 145π΄ better-files) |
Simple, safe and intuitive Scala I/O | |
84β 6π΄ blindsight) |
Blindsight is a Scala logging API with DSL based structured logging, fluent logging, semantic logging, flow logging, and context aware logging. | |
1039β 149π΄ cassovary) |
Cassovary is a simple big graph processing library for the JVM | |
5193β 1186π΄ cats) |
Lightweight, modular, and extensible library for functional programming. | |
1125β 86π΄ chimney) |
Scala library for boilerplate-free, type-safe data transformations | |
67β 8π΄ chronoscala) |
A JSR-310 port of nscala_time | |
255β 29π΄ Dsl.scala) |
A framework to create embedded Domain-Specific Languages in Scala | |
254β 25π΄ each) |
A macro library that converts native imperative syntax to scalaz's monadic expressions | |
570β 78π΄ eff) |
Eff monad for cats - https://atnos-org.github.io/eff | |
64β 5π΄ enableIf.scala) |
A library that toggles Scala code at compile-time, like #if in C/C++ | |
1179β 146π΄ enumeratum) |
A type-safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations. | |
113β 9π΄ Freasy-Monad) |
Easy way to create Free Monad using Scala macros with first-class Intellij support. | |
36β 1π΄ freedsl) |
Practical effect composition library based on abstract wrapping type and the free monad | |
612β 50π΄ freestyle) |
A cohesive & pragmatic framework of FP centric Scala libraries | |
289β 23π΄ hamsters) |
A mini Scala utility library | |
90β 18π΄ lamma) |
Lamma schedule generator for Scala is a professional schedule generation library for periodic schedules like fixed income coupon payment, equity deravitive fixing date generation etc. | |
400β 43π΄ larray) |
Large off-heap arrays and mmap files for Scala and Java | |
172β 25π΄ log4s) |
High-performance SLF4J wrapper for Scala. | |
607β 64π΄ izumi) |
Productivity-oriented collection of lightweight fancy stuff for Scala toolchain | |
1633β 202π΄ Monocle) |
Optics library for Scala | |
867β 79π΄ nscala-time) |
A new Scala wrapper for Joda Time based on scala-time | |
815β 53π΄ quicklens) |
Modify deeply nested case class fields | |
159β 14π΄ scala-records) |
Labeled records for Scala based on structural refinement types and macros. | |
1686β 155π΄ refined) |
Refinement types for Scala | |
1140β 92π΄ scala-async) |
An asynchronous programming facility for Scala | |
558β 70π΄ scala-graph) |
Graph for Scala is intended to provide basic graph functionality seamlessly fitting into the Scala Collection Library. Like the well known members of scala.collection, Graph for Scala is an in-memory graph library aiming at editing and traversing graphs, finding cycles etc. in a user-friendly way. | |
901β 131π΄ scala-logging) |
Convenient and performant logging library for Scala wrapping SLF4J. | |
1096β 224π΄ scalameta) |
Library to read, analyze, transform and generate Scala programs | |
Scalactic | Small library of utilities related to quality that helps keeping code clear and correct. | |
4661β 705π΄ scalaz) |
Principled Functional Programming in Scala | |
508β 39π΄ scribe) |
The fastest logging library in the world. Built from scratch in Scala and programmatically configurable. | |
3367β 530π΄ shapeless) |
Generic programming for Scala | |
937β 60π΄ simulacrum) |
First class syntax support for type classes in Scala | |
196β 14π΄ squid) |
Squid β type-safe metaprogramming and compilation framework for Scala | |
677β 82π΄ tinylog) |
tinylog is a lightweight logging framework for Java, Kotlin, Scala, and Android | |
2679β 580π΄ util) |
Wonderful reusable code from Twitter |
Projects that don't fit into any specific category.
Name | Description | GitHub Activity
---- | ----------- | --------------- π Agora | Library of vote-counting algorithms for elections. |
2589β
365π΄
Ammonite) | Scala Scripting |
87β
11π΄
aws4s) | Non-blocking AWS SDK for Scala exposing strongly-typed APIs built on top of http4s, fs2 and cats |
719β
151π΄
bootzooka) | Simple project to quickly start developing a Scala-based microservice or web application, without the need to write login, user registration etc. |
1210β
264π΄
eclair) | A scala implementation of the Lightning Network. |
223β
26π΄
fansi) | Scala/Scala.js library for manipulating Fancy Ansi colored strings |
38β
0π΄
figlet4s) | ASCII-art banners in Scala |
187β
44π΄
fs2-aws) | fs2 utilities to interact with AWS |
11β
0π΄
google4s) | A lean, functional library for Google Cloud Services in Scala |
18β
5π΄
google-api-scala) | This API is a wrapper for the google java libraries. Currently mapping Admin Directory, Drive, and Calendar. |
17β
7π΄
mailgun4s) | Mailgun API implementation in Scala |
13β
2π΄
managerial) | A zero-dependency Scala library for managing resources monadically |
34β
4π΄
media4s) | Scala command-line wrapper around ffmpeg, ffprobe, ImageMagick, and other tools relating to media. |
120β
17π΄
miniboxing-plugin) | Miniboxing is a program transformation that improves the performance of Scala generics when used with primitive types. It can speed up generic collections by factors between 1.5x and 22x, while maintaining bytecode duplication to a minimum. You can easily add miniboxing to your sbt project: |
51β
6π΄
ostinato) | A chess library that runs on the server (Scala) and on the browser (ScalaJS). |
402β
130π΄
play-swagger) | Swagger spec generator for play framework |
220β
39π΄
PPrint) | Pretty-printing value, types and type-signatures in Scala |
1461β
175π΄
pureconfig) | A boilerplate-free library for loading configuration files |
400β
36π΄
REPLesent) | A neat little tool to build presentations using the Scala REPL |
231β
52π΄
scala-ssh) | Remote shell access via SSH for your Scala applications |
248β
41π΄
scala-stm) | A library-based Software Transactional Memory (STM) for Scala, coupled with transactional sets and maps | π Scavenger | An experimental automated theorem prover. |
7β
2π΄
service-chassis) | A scala chassis to get your applications and services bootstrapped quickly |
58β
2π΄
spliff) | Efficient diffing in Scala |
20β
2π΄
scountries) | Scala library that provides an enumeration of ISO 3166 codes for countries, along with their subdivisions. |
Scala libraries and wrappers for Android development.
Name | Description | GitHub Activity |
---|---|---|
742β 94π΄ sbt-android) |
An easy-to-use sbt plugin for working with all Android projects | |
2091β 163π΄ scaloid) |
Scaloid makes your Android code easy to understand and maintain. |
Scala libraries and wrappers for HTTP clients.
Name | Description | GitHub Activity |
---|---|---|
1335β 595π΄ akka-http) |
The Streaming-first HTTP server/module of Akka | |
423β 105π΄ reboot) |
Scala wrapper for the Java AsyncHttpClient. | |
1596β 221π΄ finch) |
Scala combinator library for building Finagle HTTP services | |
90β 10π΄ fintrospect) |
Implement fast, type-safe HTTP webservices for Finagle | |
2516β 786π΄ http4s) |
A minimal, idiomatic Scala interface for HTTP | |
8β 0π΄ jefe) |
Manages installation, updating, downloading, launching, error reporting, and more for your application. | |
91β 18π΄ lolhttp) |
An HTTP Server and Client library for Scala. | |
702β 80π΄ requests-scala) |
A Scala port of the popular Python Requests HTTP client: flexible, intuitive, and straightforward to use. | |
125β 24π΄ RosHTTP) |
Unified Scala.js + Scala HTTP client API | |
974β 121π΄ scalaj-http) |
Simple scala wrapper for HttpURLConnection. OAuth included. | |
333β 155π΄ scalaxb) |
scalaxb is an XML data binding tool for Scala. | |
1423β 299π΄ sttp) |
The Scala HTTP client you always wanted! | |
1301β 399π΄ tapir) |
Declarative, type-safe web endpoints library | |
404β 97π΄ endpoints4s) |
Describe HTTP endpoints in Scala and derive clients, servers, and documentation | |
9β 3π΄ frontier) |
Fast, efficient, pure-functional, effect-free websocket, http and udp server, http client and telegram bot |
Scala libraries for interactions with the Web of Data, and other RDF tools.
Name | Description | GitHub Activity |
---|---|---|
295β 72π΄ banana-rdf) |
Banana RDF | |
54β 8π΄ scowl) |
A Scala DSL for programming with the OWL API. |
Scala libraries for gathering metrics and monitoring applications.
Name | Description | GitHub Activity |
---|---|---|
425β 62π΄ metrics-scala) |
The scala API for Dropwizard's Metrics. |
Scala libraries for creating parsers.
Name | Description | GitHub Activity |
---|---|---|
358β 60π΄ atto) |
friendly little parsers | |
1080β 163π΄ fastparse) |
Writing Fast Parsers Fast in Scala | |
714β 86π΄ parboiled2) |
A macro-based PEG parser generator for Scala 2.10+ | |
643β 132π΄ scala-parser-combinators) |
simple combinator-based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module | |
224β 50π΄ cats-parse) |
A parsing library for the cats ecosystem | |
55β 15π΄ scallion) |
LL(1) parser combinators in Scala |
Sbt plugins to make your life easier.
Name | Description | GitHub Activity |
---|---|---|
700β 32π΄ better-monadic-for) |
Desugaring scala for without implicit withFilter s |
|
2010β 303π΄ coursier) |
Pure Scala Artifact Fetching | |
389β 78π΄ mdoc) |
Typechecked markdown documentation for Scala | |
90β 17π΄ sbt-api-mappings) |
An Sbt plugin that fills apiMappings for common Scala libraries. | |
2β 2π΄ sbt-apidoc) |
A port of apidocjs https://apidocjs.com to sbt, to document REST Api | |
1941β 222π΄ sbt-assembly) |
Deploy ΓΌber-JARs. Restart processes. (port of codahale/assembly-sbt) | |
545β 88π΄ sbt-buildinfo) |
I know this because build.sbt knows this. | |
278β 69π΄ sbt-ci-release) |
sbt plugin to automate Sonatype releases from GitHub Actions | |
263β 35π΄ sbt-dependency-check) |
SBT Plugin for OWASP DependencyCheck. Monitor your dependencies and report if there are any publicly known vulnerabilities (e.g. CVEs). π | |
729β 108π΄ sbt-docker) |
Create Docker images directly from sbt | |
182β 30π΄ sbt-doctest) |
Doctest for scala | |
91β 20π΄ sbt-ghpages) |
git, site and ghpages support for sbt projects. | |
133β 9π΄ sbt-groll) |
sbt plugin to roll the Git history | |
186β 55π΄ sbt-header) |
sbt-header is an sbt plugin for creating file headers, e.g. copyright headers | |
21β 1π΄ sbt-hepek) |
Sbt plugin for rendering Scala objects to files. And more! | |
61β 8π΄ sbt-ide-settings) |
SBT plugin for tweaking various IDE settings | |
785β 88π΄ sbt-jmh) |
"Trust no one, bench everything." - sbt plugin for JMH (Java Microbenchmark Harness) | |
317β 64π΄ sbt-microsites) |
An sbt plugin to create awesome microsites for your project | |
449β 70π΄ mima) |
A tool for catching binary incompatibility in Scala | |
1589β 436π΄ sbt-native-packager) |
sbt Native Packager | |
494β 76π΄ sbt-pack) |
A sbt plugin for creating distributable Scala packages. | |
141β 56π΄ sbt-pgp) |
PGP plugin for sbt | |
641β 165π΄ sbt-release) |
A release plugin for sbt | |
839β 57π΄ sbt-revolver) |
An SBT plugin for dangerously fast development turnaround in Scala | |
36β 3π΄ sbt-scala-js-map) |
A Sbt plugin that configures source mapping for Scala.js projects hosted on Github | |
189β 42π΄ sbt-scalafmt) |
sbt plugin for Scalafmt | |
639β 154π΄ sbt-scoverage) |
sbt plugin for scoverage | |
173β 74π΄ sbt-site) |
Site generation for sbt | |
328β 58π΄ sbt-sonatype) |
A sbt plugin for publishing Scala/Java projects to the Maven central. | |
124β 27π΄ sbt-unidoc) |
sbt plugin to create a unified Scaladoc or Javadoc API document across multiple subprojects. | |
755β 55π΄ sbt-updates) |
sbt plugin that can check Maven and Ivy repositories for dependency updates | |
719β 167π΄ sbt-eclipse) |
Plugin for sbt to create Eclipse project definitions | |
312β 20π΄ scala-clippy) |
Good advice for Scala compiler errors | |
369β 29π΄ splain) |
better implicit errors for scala | |
582β 63π΄ tut) |
doc/tutorial generator for scala | |
384β 105π΄ xsbt-web-plugin) |
Servlet support for sbt | |
28β 3π΄ sbt-deploy-ssh) |
SBT deploy plugin | |
343β 99π΄ sbt-git) |
A git plugin for SBT | |
2β 0π΄ sbt-git) |
Use git-describe as a version and run git commands inside SBT shell |
XML and HTML generation and processing
Name | Description | GitHub Activity |
---|---|---|
711β 106π΄ scala-scraper) |
A Scala library for scraping content from HTML pages | |
59β 13π΄ xs4s) |
XML Streaming for Scala including FS2/cats support |
Name | Description | GitHub Activity |
---|---|---|
405β 44π΄ Laika) |
Text Markup Transformer for sbt and Scala applications, transforming Markdown and reStructuredText to HTML, EPUB and PDF |
JavaScript generation and interop libraries.
Name | Description | GitHub Activity |
---|---|---|
102β 42π΄ scalafiddle-editor) |
Web user interface for ScalaFiddle | |
4552β 383π΄ scala-js) |
Scala.js, the Scala to JavaScript compiler |
Name | Description | GitHub Activity |
---|---|---|
559β 111π΄ akka-quartz-scheduler) |
Quartz Extension and utilities for cron-style scheduling in Akka |
Web templating engines.
Name | Description | GitHub Activity |
---|---|---|
121β 30π΄ beard) |
A lightweight, logicless templating engine, written in Scala and inspired by Mustache | |
744β 117π΄ scalatags) |
ScalaTags is a small XML/HTML construction library for Scala. | |
608β 103π΄ scalate) |
Scalate is a Scala based template engine which supports HAML, Mustache and JSP, Erb and Velocity style syntaxes. | |
539β 109π΄ twirl) |
Twirl is Play's default template engine | |
104β 10π΄ hepek) |
Typesafe HTML templates in pure Scala. Static site generator included! Play and ScalaJS support! |
Name | Description | GitHub Activity |
---|---|---|
115β 5π΄ scala-trace-debug) |
Macro based print debugging. Locates log statements in your IDE. | |
879β 200π΄ bloop) |
Bloop is a build server and CLI tool to compile, test and run Scala fast from any editor or build tool. | |
34β 17π΄ codacy-scalameta) |
Codacy tool for Scalameta | |
2010β 303π΄ coursier) |
Pure Scala Artifact Fetching | |
44β 4π΄ dregex) |
Dregex is a JVM library that implements a regular expression engine using deterministic finite automata (DFA). It supports some Perl-style features and yet retains linear matching time, and also offers set operations. | |
88β 6π΄ fast-string-interpolator) |
Scala macro that generates ultra-fast string interpolators. | |
125β 10π΄ fastring) |
Extremely fast string formatting | |
9071β 1239π΄ gitbucket) |
A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility | |
1734β 225π΄ giter8) |
a command line tool to apply templates defined on GitHub | |
2033β 315π΄ metals) |
Scala language server with rich IDE features π | |
1986β 300π΄ mill) |
Your shiny new Java/Scala build tool! | |
23β 3π΄ pos) |
Macro based print debugging. Locates debug statements in your IDE. Supports logging. | |
4759β 928π΄ sbt) |
sbt, the interactive build tool | |
811β 182π΄ scalafix) |
Refactoring and linting tool for Scala | π Scalafmt |
526β 148π΄ scalariform) |
Scala source code formatter | |
677β 216π΄ scalastyle) |
scalastyle | |
290β 38π΄ Scalatex) |
Programmable, Typesafe Document Generation | |
515β 88π΄ scapegoat) |
Scala compiler plugin for static code analysis | |
1066β 113π΄ wartremover) |
Flexible Scala code linting tool | |
4β 3π΄ stone) |
URL (de)construct. Withers. | |
4β 0π΄ scalajs-router) |
ScalaJS frontend router | |
23β 4π΄ scala2plantuml) |
Scala2PlantUML generates PlantUML diagrams from Scala code. |
Libraries to aid with geospatial calculations and artifacts.
Name | Description | GitHub Activity |
---|---|---|
1321β 362π΄ geotrellis) |
GeoTrellis is a geographic data processing engine for high performance applications. | |
77β 16π΄ osm4scala) |
Scala and Spark library focused on reading OpenStreetMap Pbf files. | |
128β 11π΄ rtree2d) |
RTree2D is a 2D immutable R-tree for ultra-fast nearest and intersection queries in plane and spherical coordinates | |
81β 25π΄ sfcurve) |
LocationTech SFCurve is a Scala library for the creation, transformation, and querying of space-filling curves | |
16β 10π΄ stac4s) |
a scala library with primitives to build applications using the SpatioTemporal Asset Catalogs specification | |
72β 18π΄ franklin) |
A STAC/OGC API Features Web Service |
DevOps related tools and libraries.
Name | Description | GitHub Activity |
---|---|---|
73β 29π΄ skuber) |
A Scala Kubernetes client library |
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
1085β
437π΄
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.
- π 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 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
17β
2π΄
CA Art) - A small project aimed at learning Scala on intermediate level by experimenting with Cellular Automata
8964β
1270π΄
lauris/awesome-scala)