Freestyle: A framework for pure functional apps, libs and microservices
summary
Freestyle 0.4.0 claims a concrete, stack‑safe way to build purely functional Scala apps and microservices: algebras get generated by Scala‑meta macros so declaration is decoupled from interpretation, FS = Free of FreeApplicative enables explicit parallel forks, and the iota library reifies coproducts and functionK as indexed arrays for constant‑time dispatch — the presenter cites “about 10× faster than Free in Cats/Scalaz”. Integrations: Cats, Monix, gRPC, Kafka, Cassandra; generates RPC server/clients and proto files and is already used in production.
AI-written summary · about
chapters (36)
- 0:00Introduction
- 1:07Why build Freestyle
- 2:48Goals for Freestyle
- 3:21Free vs Douglass
- 3:31Freestyle libraries
- 3:45Freestyle GUI
- 3:57Agenda
- 4:36Interface implementation style
- 6:41Freestyle macro
- 8:38Coproducts
- 9:55Modules
- 10:39Algebras
- 11:26Taglist
- 12:29Module
- 13:35Interact
- 13:57Marker
- 14:10Parameterization
- 14:35Using F
- 15:00Interpreter Hunter
- 16:04How does this all come together
- 16:52Toplevel OOP
- 22:19Optimisations
- 22:49Iota
- 23:14Constant time evaluation
- 24:16Optimize the function K
- 25:54More optimizations
- 26:55Integrations
- 27:51External Libraries
- 29:03RPC Service
- 30:28RPC Server
- 31:01Profiles
- 31:16ProtoGen
- 31:32SignFace
- 32:30Ops Center
- 33:16Freestyle vs Cuts
- 34:33Questions
related talks
49mFunctional programming in practice, with all its consequences
46mFast & Functional
49mScala Server Toolkit: How to Write A FP Microservice Step-by-step
51mCats Effect: The IO Monad for Scala
52mFast but not Loose: Typesafe Clients in a Distributed Service Architecture
20mFunctional Design for Reference Architectures
51mPractical eff monad for micro services
49mPractical Eff monad for microservices
