reactiveScala icon indicating copy to clipboard operation
reactiveScala copied to clipboard

Example of Features, Reactive and Pure functional programing in Scala

Author Pablo Perez Garcia

Is this repo useful? Please ⭑Star this repository and share the love.

My image

Here we cover with some practical examples, the most common use of Scala API.

  • Collections
  • Algorithmic
  • Implicit
  • Pattern matching
  • For Comprenhensions
  • Type Classes
  • Interpolation
  • Future
  • Functions
  • Factory
  • Compound Types
  • Self Reference
  • Generics
  • Covariant SubType
  • Partial function
  • Extractor
  • Try
  • Either
  • Fold
  • Currying
  • Utils
  • Reflection
  • Phantom Types
  • Option
  • Functional Collection
  • Functional Map

Scala My image

Here we cover with some practical examples, the new features of the version 3

My image

Here we cover with some practical examples, the most common use of the ReactiveX platform for Scala.

RxJava examples here

My image

  • Combining
  • Creating
  • Filtering
  • Transforming
  • Scheduler
  • Implicit

My image

ScalaZ

ScalaZ Principled Functional Programming in Scala.

Here we cover with some practical examples, the most common use of ScalaZ API.

  • Functor
  • Monad laws
  • Free monads
  • Writer monad
  • Reader monad
  • State monad
  • IO Effects monad
  • Monad transformer
  • EitherT
  • OptionT
  • Features
  • Tagging
  • Test DSL
  • Lens
  • Category theory

My image

ZIO

ZIO A type-safe, composable library for asynchronous and concurrent programming in Scala.

Here we cover with some practical examples, the most common use of ZIO library.

ZIO 1.0

  • ZIO monad
  • ZIO Actor
  • ZIO ZLayer
  • ZIO ZManaged
  • ZIO ZStream
  • ZIO Config
  • ZIO Test
  • ZIO flip
  • ZIO queue
  • ZIO fiber
  • ZIO promise
  • ZIO STM

ZIO 2.0

My image

Scala-native

Scala Native is an optimizing ahead-of-time compiler and lightweight managed runtime designed specifically for Scala.

Here we cover some of the most important features of the library with practical examples.

Documentation of how to configure a scala-native project here

My image

Shapeless is a type class and dependent type based generic programming library for Scala.

Here we cover some of the most important features of the library with practical examples.

  • Generics
  • HList
  • Tags
  • Tuples
  • HMap
  • Coproduct

My image

Cats

Cats is a library which provides abstractions for functional programming in the Scala.

The original project cats

  • Free monad connectors
  • Effects
  • Tagless Final

My image

Monix

Monix is a high-performance Scala library for Reactive programing, composing asynchronous and event-based programs.

Here we cover some of the most important features of the library with practical examples.

The original project here

  • Consumers
  • Creation
  • Task Error handler
  • Observable
  • Circuit breaker

My image

Category Theory

  • Monoid
  • Functor
  • Applicative
  • Monoidal
  • Monad

My image

Fs2

  • Stream feature

My image

Finagle

  • Http Client
  • Http Server
  • Service
  • Filter

My image

Go features

Examples of some ported features of Golang in scala.

  • Go routine & Channel

My image

Design patterns

  • Creational
  • Structural
  • Behavioral
  • Cake pattern
  • DI Implicit

My image

Haskell style

Examples of how Scala and Haskell can look alike.

  • ScalaHaskell

My image My image

gRPC + ZIO

Example of Client and Server using gRPC with ZIO and ZLayers for dependency injection.

  • Client
  • Server

Hedged Http client

Hedged requests: send the same requests to multiple servers, and use whatever response comes back first.

  • Connector
  • DSL Runner

Tagless Final

Examples of use Tagless Final encode to enjoy the potential of free structures.

  • Tagless

Macros

  • DSL validator
  • Runner

Refined

Examples of this library to validate values types in compilation time.

  • Examples

Algorithms

  • Sorting
  • String
  • Logic

Data structure

  • Array
  • LinkedList
  • Tree
  • Graph
  • Stack

Dotty

  • Implicit function types

My image

Prime number platform

Prime number platform. A micro service platform implemented using Finagle for streaming between client/server and gRPC for communication between services. All platform implemented using pure functional ZIO effect system.

You can find the project code here

Exchange platform

A Microservice platform which provide currency exchange using pure functional programing libraries.

You can find the project code here

My image

Spark

Project to cover the most famous Spark features.

You can find the project code here

Games

Games implementation in Scala