0.10.14
What is it?
Izumi (jp. 泉水, spring) is an ecosystem of independent libraries and frameworks allowing you to significantly increase productivity of your Scala development.
including the following components:
- distage – Transparent and debuggable Dependency Injection framework for pure FP Scala,
- distage-testkit – Hyper-pragmatic pure FP Test framework. Shares heavy resources globally across all test suites; lets you easily swap implementations of component; uses your effect type for parallelism.
- distage-framework-docker – A distage extension for using docker containers in tests or for local application runs, comes with example Postgres, Cassandra, Kafka & DynamoDB containers.
- LogStage – Automatic structural logs from Scala string interpolations,
- BIO - A typeclass hierarchy for tagless final style with Bifunctor and Trifunctor effect types. Focused on ergonomics and ease of use with zero boilerplate.
- izumi-reflect (moved to zio/izumi-reflect) - Portable, lightweight and kind-polymorphic alternative to
scala-reflect
's Typetag for Scala, Scala.js, Scala Native and (soon) Dotty - IdeaLingua (moved to 7mind/idealingua-v1) – API Definition, Data Modeling and RPC language, optimized for fast prototyping – like gRPC or Swagger, but with a human face. Generates RPC servers and clients for Go, TypeScript, C# and Scala,
- Opinionated SBT plugins (moved to 7mind/sbtgen) – 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.
Changes since 0.10.12
distage-framework-docker:
- Added shiny new documentation microsite for distage docker module! - https://izumi.7mind.io/distage/distage-framework-docker - by @coreyoconnor (#1057)
- Added ability to reuse 'one-shot', non-daemonic, docker containers - e.g.
flyway
migrations - within a JVM. If a docker container enables reuse AND exposes no ports, it will be started only once within and will not be restarted upon exit, for this JVM. by @Caparow (#1104) - Switch to asynchronous file locks in docker reuse mechanism by @Caparow (#1117)
distage-testkit:
other:
- Add Tinkoff to users by @Odomontois (#1107)
Pull requests merged since 0.10.12:
- Add async methods to DIEffectAsync, use async file lock for file mutex. (#1117)
- distage-testkit: Add
TestConfig#bootstrapFactory
configuration (#1116) - distage-docker documentation (#1057)
- Fix docker port label names. (#1112)
- distage-docker: reuse exited containers (#1104)
- Add Tinkoff to users (#1107)