Ciris is a functional programming library for loading configurations.
In particular, the following features are supported.
- Loading values from multiple sources and defining default values.
- Composing multiple configuration values into larger configurations.
- Preventing secret values from being shown, redacting sensitive errors.
- Decoding configuration values to various commonly used types.
- Accumulating errors when multiple values cannot be loaded.
Documentation is kept up-to-date, currently documenting v1.0.2 on Scala 2.13.
To get started with sbt, simply add the following line to your
libraryDependencies += "is.cir" %% "ciris" % "1.0.2"
Published for Scala 2.12 and 2.13. For changes, refer to the release notes.
For Scala 2.12, enable partial unification by adding the following line to
scalacOptions += "-Ypartial-unification"
Following are additional provided modules.
For enumeratum support, add the following line to your
libraryDependencies += "is.cir" %% "ciris-enumeratum" % "1.0.2"
For refined support, add the following line to your
libraryDependencies += "is.cir" %% "ciris-refined" % "1.0.2"
Following is an incomplete list of third-party integrations.
Backwards binary-compatibility for the library is guaranteed between minor and patch versions.
1.a.b is backwards binary-compatible with
1.c.d for any
a > c or
a = c and
b > d.
Please note binary-compatibility is not guaranteed between milestone releases.
Refer to the table below for dependencies and version support across modules.
|Cats Effect 2.0.0||Scala 2.12 and 2.13|
|Enumeratum 1.5.13||Scala 2.12 and 2.13|
|Refined 0.9.10||Scala 2.12 and 2.13|
Ciris embraces pure, typeful, idiomatic functional programming in Scala, and wants to provide a safe and friendly environment for teaching, learning, and contributing as described in the Scala Code of Conduct.