# Crate config

source · [−]
Expand description

Config organizes hierarchical or layered configurations for Rust applications.

Config lets you set a set of default parameters and then extend them via merging in configuration from a variety of sources:

- Environment variables
- String literals in well-known formats
- Another Config instance
- Files: TOML, JSON, YAML, INI, RON, JSON5 and custom ones defined with Format trait
- Manual, programmatic override (via a `.set` method on the Config instance)

Additionally, Config supports:

- Live watching and re-reading of configuration files
- Deep access into the merged configuration via a path syntax
- Deserialization via `serde` of the configuration or any subset defined via a path

See the examples for general usage information.

## Re-exports

`pub use crate::builder::AsyncConfigBuilder;`
`pub use crate::builder::ConfigBuilder;`

## Modules

builder

## Structs

Config

A prioritized configuration repository. It maintains a set of configuration sources, fetches values to populate those, and provides them according to the source’s priority.

Environment
File

A configuration source backed up by a file.

FileSourceFile

Describes a file sourced from a file

FileSourceString

Describes a file sourced from a string

Value

A configuration value.

## Enums

ConfigError

Represents all possible errors that can occur when working with configuration.

FileFormat

File formats provided by the library.

ValueKind

Underlying kind of the configuration value.

## Traits

AsyncSource

Describes a generic source of configuration properties capable of using an async runtime.

FileStoredFormat

An extension of `Format` trait.

Format

Describes a format of configuration source data

Source

Describes a generic source of configuration properties.

## Type Definitions

Map