Ciris

Ciris

  • Blog
  • API Docs
  • Documentation
  • GitHub

›Documentation

Documentation

  • Overview
  • Quick Example
  • Configurations
  • Modules

Overview

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 v2.3.2 on Scala 2.13.

Getting Started

To get started with sbt, add the following line to your build.sbt file.

libraryDependencies += "is.cir" %% "ciris" % "2.3.2"

Published for Scala 2.12, 2.13 and 3.1. For changes, refer to the release notes.

For Scala 2.12, enable partial unification by adding the following line to build.sbt.

scalacOptions += "-Ypartial-unification"

Modules

Following are additional provided modules.

Circe

For circe support, add the following line to your build.sbt file.

libraryDependencies += "is.cir" %% "ciris-circe" % "2.3.2"

Circe YAML

For circe-yaml support, add the following line to your build.sbt file.

libraryDependencies += "is.cir" %% "ciris-circe-yaml" % "2.3.2"

Enumeratum

For enumeratum support, add the following line to your build.sbt file.

libraryDependencies += "is.cir" %% "ciris-enumeratum" % "2.3.2"

Http4s

For http4s support, add the following line to your build.sbt file.

libraryDependencies += "is.cir" %% "ciris-http4s" % "2.3.2"

Refined

For refined support, add the following line to your build.sbt file.

libraryDependencies += "is.cir" %% "ciris-refined" % "2.3.2"

Squants

For squants support, add the following line to your build.sbt file.

libraryDependencies += "is.cir" %% "ciris-squants" % "2.3.2"

External Modules

Following is an incomplete list of third-party integrations.

  • ciris-aiven-kafka
  • ciris-aws-secretsmanager
  • ciris-aws-ssm
  • ciris-credstash
  • ciris-hocon
  • ciris-kubernetes

Signatures

Stable release artifacts are signed with the 3C73 EC3D A303 8ED3 key.

Compatibility

Backwards binary-compatibility for the library is guaranteed between minor and patch versions.
Version 2.a.b is backwards binary-compatible with 2.c.d for any a > c or a = c and b > d.

Please note binary-compatibility is not guaranteed between milestone releases.

Snapshot Releases

To use the latest snapshot release, add the following lines to your build.sbt file.

resolvers += Resolver.sonatypeRepo("snapshots")

libraryDependencies += "is.cir" %% "ciris" % "2.3.2+69-50f1f6ca-SNAPSHOT"

Dependencies

Refer to the table below for dependencies and version support across modules.

ModuleDependenciesScala
cirisCats Effect 3.3.12Scala 2.12, 2.13 and 3.1
ciris-circeCirce 0.14.2Scala 2.12, 2.13 and 3.1
ciris-circe-yamlCirce YAML 0.14.1Scala 2.12, 2.13 and 3.1
ciris-enumeratumEnumeratum 1.7.0, TypeName 1.0.0Scala 2.12 and 2.13
ciris-http4sHttp4s 0.23.12Scala 2.12, 2.13 and 3.1
ciris-refinedRefined 0.9.29, TypeName 1.0.0Scala 2.12, 2.13 and 3.1
ciris-squantsSquants 1.8.3Scala 2.12, 2.13 and 3.1

Participation

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.

License

Licensed under the MIT license. Refer to the license file.

Quick Example →
  • Getting Started
    • Modules
    • Signatures
    • Compatibility
    • Snapshot Releases
  • Dependencies
  • Participation
  • License

Copyright © 2017-2022 Viktor Lövgren.
Icon designed by Freepik from Flaticon.