Working with the new frontend of ZIO
With 4.x.x, zio-config acts as an extension to the core ZIO library's Config
in the following ways.
-
Introduction of
IndexedFlat
and its newread
functionality to handle complex configuration sources such as HOCON, JSON, YAML and XML. More documentation onIndexedFlat
will be provided in upcoming releases. -
Extra backends, such as YAML and Typesafe-HOCON.
-
Auto-Derivations for
zio.Config
in scala 2(using magnolia) and scala3. Note that, we may change the module name fromzio-config-magnolia
tozio-config-derivation
and corresponding imports, in coming releases. -
Integrations with cats, enumeratum, scalaz, AWS-SDK, and zio-AWS.
-
Automatic validation using integration with
refined
.
The following capabilities are removed in 4.x.x:
- CommandLine source, due to maintainability issues. You can use
zio-config-3.x
(that has latest zio dependency) if you were using this. Meanwhile, we will try to come up with a better solution. - Scala 2.11 support, due to maintainability issues.
- Memoized sources.
- SystemEnv and SystemProperties are now in the core library and not in zio-config since they are simple configuration sources that work with
Flat
. - Effectful Configuration Sources, such as
ConfigProvider.fromHoconFile
can fail, and it is now up to the user to make sure it is properly effect-handled.
More refinements and additions are on it's way
More backends, including TOML and XML, are on the way. We aim to eliminate Java and third-party library dependencies to parse the remaining configuration sources as well.
The release of version 4.x.x represents a massive change to zio-config, and we appreciate your patience. We recommend using this release candidate version, providing feedback and reporting any bugs that you encounter. We will continue to refine the product and improve the website. More documentation on version 4.x.x will be updated in upcoming releases.
EDITED: Note that there were a few CI publish hiccups, and more release candidates were tried. Please make sure to choose the latest one.