/zio-config

Easily use and document any config from anywhere in ZIO apps

Primary LanguageScalaApache License 2.0Apache-2.0

ZIO Config

Project Stage CI Release Issues Scaladex Discord Twitter
Project stage CI Release Artifacts Average time to resolve an issue Badge-Scaladex-page Badge-Discord Badge-Twitter

A ZIO-based library for working with application configuration data.

ZIO Config offloads all parsing and file formats to other libraries, and just focuses on being the interface to configuration data throughout an application.

Using a single definition of configuration requirements, which can be derived automatically from your data types, ZIO Config offers a bundle of features for free:

  • Read flat or nested config data from any format, with descriptive errors
  • Write flat or nested config data into any format
  • Compose sources of configuration, so you can have, e.g., environmental or command-line overrides
  • Automatically generate documentation so devs / devops know how to configure the application
  • Generate a report that shows where each piece of configuration data came from

Please find more details in the website. The website is currently for the zio-config version 1.x only. For newer versions, please check the markdown files in docs directory here in GitHub. For example, the docs for 3.x is available here. The updated website will be published soon for the newer versions.

If you are only interested in automatic derviation of configuration, find the details here.

Jump to examples to see various usecases. Hop over to the Discord #zio-config channel to chat with developers and other users.

Try out ZIO Config quickly in Scastie, which comes pre-loaded with an example in scala-3. We try to make sure the scastie-buildsettings are updated with latest version of ZIO Config.