reactiveScala
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.
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 
Here we cover with some practical examples, the new features of the version 3
- Given instances
- Implicit functions
- Intersection types
- Union types
- Enum types
- Type Lambda
- Trait Params
- Extension methods
- Export Clauses
- Auto param tuples
- Multiverse equality
- Pattern matching
- Inline
- Structure & Style
Here we cover with some practical examples, the most common use of the ReactiveX platform for Scala.
RxJava examples here

- Combining
- Creating
- Filtering
- Transforming
- Scheduler
- Implicit

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

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

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

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

Cats
Cats is a library which provides abstractions for functional programming in the Scala.
The original project cats
- Free monad connectors
- Effects
- Tagless Final

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

Category Theory
- Monoid
- Functor
- Applicative
- Monoidal
- Monad

Fs2
- Stream feature

Finagle
- Http Client
- Http Server
- Service
- Filter

Go features
Examples of some ported features of Golang in scala.
- Go routine & Channel

Design patterns
- Creational
- Structural
- Behavioral
- Cake pattern
- DI Implicit

Haskell style
Examples of how Scala and Haskell can look alike.
- ScalaHaskell

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

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

Spark
Project to cover the most famous Spark features.
You can find the project code here
Games
Games implementation in Scala

