distage is a pragmatic module system for Scala that combines simplicity and reliability of pure FP with extreme late-binding and flexibility of runtime dependency injection frameworks such as Guice.
distage is unopinionated, it’s good for structuring applications written in either imperative Scala as in Akka/Play, or in pure FP Tagless Final Style
- Slides: distage: Purely Functional Staged Dependency Injection
- Config Injection
- Other features
- Syntax reference
See PPER Overview