What is it?
Izumi (jap. 泉水, spring) is a set of independent libraries and frameworks allowing you to significantly increase productivity of your Scala development.
including the following components:
- distage – Staged, transparent and debuggable runtime & compile-time Dependency Injection Framework,
- logstage – Automatic structural logs from Scala string interpolations,
- idealingua – API Definition, Data Modeling and RPC Language, optimized for fast prototyping – like gRPC, but with a human face. Currently generates servers and clients for Go, TypeScript, C# and Scala,
- Opinionated SBT plugins – Reduces verbosity of SBT builds and introduces new features – inter-project shared test scopes and BOM plugins (from Maven),
- Percept-Plan-Execute-Repeat (PPER) – a pattern that enables modeling very complex domains and orchestrate deadly complex processes a lot easier than you're used to.
- DIStage Livecoding Project from ScalaWAW Warsaw
- DIStage Example Project (older)
- Idealingua Example Project with TypeScript and Scala
We aim to provide tools that:
- Boost productivity and reduce code bloat
- Are as non-invasive as possible
- Are introspectable
- Are better than anything else out there :3
Current state and future plans
We are looking for early adopters, contributors and sponsors.
This project is currently a work in progress.
In the future we are going to (or may) implement more tools based on PPER approach:
- Best in the world build system
- Best in the world cluster orchestration tool
- Best in the world load testing/macro-benchmark tool
YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler and YourKit YouMonitor.
Triplequote Hydra is the world’s only parallel compiler for the Scala language. Hydra works by parallelizing all of the Scala compiler phases, taking full advantage of the many cores available in modern hardware.
./sbtgen.scto generate JVM-only sbt projects, run
./sbtgen.sc --jsto generate a JVM+JS sbt crossprojects