Scala Functional programming

Open-source Scala projects categorized as Functional programming

Top 23 Scala Functional programming Projects

  • scala

    Scala 2 compiler and standard library. For bugs, see scala/bug

    Project mention: Micronaut vs others(Spring Boot, Quarkus and co.) | reddit.com/r/java | 2022-11-10

    Tapir is a Scala framework. (which runs on the JDK) Since the recent release of version 1.0, it's become my go to for many projects. It doens't provide much in the way of integrations with 3rd party frameworks, but I actually prefer that. It does autogenerate great swagger docs though.

  • lila

    ♞ lichess.org: the forever free, adless and open source chess server ♞

    Project mention: What’s your method for learning a new opening? | reddit.com/r/chess | 2022-12-03

    then STEP 2 to study the opening, you need to look at model games, study books or youtube videos, maybe record the key variations on lichess.org or on a database ( free software Arena ).

  • SonarLint

    Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.

  • Scalaz

    Principled Functional Programming in Scala

    Project mention: Typeclasses explained in Java | dev.to | 2022-07-27

    If I managed to gain you interest you can take a look at one of the following libraries like cats, scalaz for scala and vavr for java which contain type class definitions and implementations for common types.

  • ZIO

    ZIO — A type-safe, composable library for async and concurrent programming in Scala

    Project mention: ZIO Flow RC 1 release | news.ycombinator.com | 2022-12-02
  • Shapeless

    Generic programming for Scala

    Project mention: Scala 3: modifying product types in compile-time | reddit.com/r/scala | 2022-07-14

    If that's what you want, you can use Shapeless' records and HList. You can probably replicate this in plain Scala 3 with tuples and literal types as you said. It won't play nice with your others libs though but maybe there are integrations.

  • Scala Exercises

    The easy way to learn Scala.

    Project mention: Resources for advanced topics | reddit.com/r/scala | 2022-08-07

    There's also scala-exercises for advanced functional programming lessons.

  • FS2

    Compositional, streaming I/O library for Scala

    Project mention: Grasping the concepts and getting them down to earth | reddit.com/r/scala | 2022-11-04

    Most important/known: * https://http4s.org/ - an HTTP client/server * https://github.com/typelevel/fs2 - streaming * https://github.com/tpolecat/doobie - JDBC

  • InfluxDB

    Build time-series-based applications quickly and at scale.. InfluxDB is the Time Series Data Platform where developers build real-time applications for analytics, IoT and cloud-native services in less time with less code.

  • doobie

    Functional JDBC layer for Scala.

    Project mention: Grasping the concepts and getting them down to earth | reddit.com/r/scala | 2022-11-04

    Most important/known: * https://http4s.org/ - an HTTP client/server * https://github.com/typelevel/fs2 - streaming * https://github.com/tpolecat/doobie - JDBC

  • Monix

    Asynchronous, Reactive Programming for Scala and Scala.js.

    Project mention: Scala isn't fun anymore | reddit.com/r/programming | 2022-09-10

    The author is the creator of Monix and implemented the first version of cats-effect. He knows what he is doing.

  • scalajs-react

    Facebook's React on Scala.JS

    Project mention: Monorepo: seeking for an advice for bi-lang project | reddit.com/r/scala | 2022-07-31

    Then there's scalajs-react, which can be integrated with existing React ecosystem, but it's just sooo compex: macros, 5-6 type parameters, hundreds and hundreds of cryptic types. We decided to stick with TypeScript instead.

  • Monocle

    Optics library for Scala

    Project mention: Ref in cats-effect. When should I use it, and when should I not? | reddit.com/r/scala | 2022-07-09

    Without concurrency, using a Ref doesn't buy you anything over just using a var. If you want the benefits of immutability with an API that resembles mutability, you have to use something like Monocle.

  • skunk

    A data access library for Scala + Postgres.

    Project mention: New to Scala; | reddit.com/r/scala | 2022-10-14

    The major performance issue with Skunk is tracked here. tl;dr prepared statements currently take a horrifying number of network round-trips to the database. I'm sympathetic to Rob's "what you see is what you get" priorities for Skunk. But I'm glad to see an outline of a plan that sounds like it would satisfy those objectives without being so, for lack of a better term, naïve in their pursuit.

  • tapir

    Declarative, type-safe web endpoints library

    Project mention: Micronaut vs others(Spring Boot, Quarkus and co.) | reddit.com/r/java | 2022-11-10

    Tapir is a Scala framework. (which runs on the JDK) Since the recent release of version 1.0, it's become my go to for many projects. It doens't provide much in the way of integrations with 3rd party frameworks, but I actually prefer that. It does autogenerate great swagger docs though.

  • caliban

    Functional GraphQL library for Scala

    Project mention: GraphQL is quickly moving to one of my least favorite technologies | news.ycombinator.com | 2022-07-29
  • frameless

    Expressive types for Spark.

    Project mention: Why use Spark at all? | reddit.com/r/dataengineering | 2022-10-19

    To add to this I lately have used Spark with frameless for compile time safety and it's an interesting library that works well with Spark.

  • DeepLearning.scala

    A simple library for creating complex neural networks

  • Quicklens

    Modify deeply nested case class fields

    Project mention: I want to move to Scala 3, but I'm not sure what libraries to use | reddit.com/r/scala | 2022-08-31

    Lens use QuickLens https://github.com/softwaremill/quicklens

  • better-monadic-for

    Desugaring scala `for` without implicit `withFilter`s

    Project mention: Automatic parallelisation of for-comprehensions in Scala 3 | reddit.com/r/scala | 2022-11-20

    I agree with that one - but isn't that already fixed by https://github.com/oleg-py/better-monadic-for ?

  • Learn-by-doing functional programming course on Scala

    learn-by-doing course/tutorial for functional programming on scala

  • argonaut

    Purely functional JSON parser and library in scala.

  • trading

    💱 Trading application written in Scala 3 that showcases an Event-Driven Architecture (EDA) and Functional Programming (FP)

    Project mention: Is transitioning from Haskell really that hard? | reddit.com/r/scala | 2022-08-12
  • topshell

    TopShell - a purely functional, reactive scripting language

    Project mention: What's the syntax of lambda expressions in your language? | reddit.com/r/ProgrammingLanguages | 2022-02-02

    TopShell, curried, arrow:

  • tofu

    Functional programming toolbox (by TinkoffCreditSystems)

  • Zigi

    The context switching struggle is real. Zigi makes context switching a thing of the past. It monitors Jira and GitHub updates, pings you when PRs need approval and lets you take fast actions - all directly from Slack!

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2022-12-03.

Scala Functional programming related posts

Index

What are some of the best open-source Functional programming projects in Scala? This list will help you:

Project Stars
1 scala 13,948
2 lila 12,318
3 Scalaz 4,591
4 ZIO 3,638
5 Shapeless 3,302
6 Scala Exercises 2,543
7 FS2 2,169
8 doobie 2,013
9 Monix 1,867
10 scalajs-react 1,600
11 Monocle 1,548
12 skunk 1,376
13 tapir 1,127
14 caliban 834
15 frameless 830
16 DeepLearning.scala 760
17 Quicklens 747
18 better-monadic-for 671
19 Learn-by-doing functional programming course on Scala 585
20 argonaut 535
21 trading 473
22 topshell 469
23 tofu 451
Truly a developer’s best friend
Scout APM is great for developers who want to find and fix performance issues in their applications. With Scout, we'll take care of the bugs so you can focus on building great things 🚀.
scoutapm.com