# rust-cli/config-rs

⚙️ Layered configuration system for Rust applications (with strong support for 12-factor applications).

Repository: https://github.com/rust-cli/config-rs
Canonical: https://ross.abutalabs.com/products/config-rs
Homepage: https://docs.rs/config/latest/config/
Language: Rust
License: Apache-2.0
License Family: permissive
Topics: rust, config-management, configuration, toml, json, configuration-management, config
Last push: 2026-08-26T15:35:22+00:00

## Health v2 (maintenance only)
Score: 77/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 99, release rhythm 35, longevity 100
- inputs: {"age_days": 3508, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 3205, forks 265 (observed 2026-08-28T04:07:48.615582+00:00)

## What it is
A Rust library providing a layered configuration system that merges defaults, files (JSON, TOML, YAML, INI, RON, JSON5, Corn), environment variables, and programmatic overrides. It supports serde deserialization, path-based nested access, live file watching, and custom formats via a Format trait.

## Use cases
- load app settings from toml and environment variables in rust
- merge layered configuration with defaults and overrides
- read config files in json yaml ini formats
- implement 12-factor configuration for a rust service
- hot-reload configuration files when they change
- deserialize config into a rust struct with serde

## When to choose
- you need to combine multiple config sources (files, env vars, defaults) with precedence
- your app follows 12-factor principles and reads config from the environment
- you want support for many config file formats out of the box
- you need live watching and re-reading of config files

## When to avoid
- you need to write modified configuration values back to files - it is read-only
- you only need a single simple config file parsed once
- you need a GUI or CLI for managing configuration

## Facets
- artifact type: library
- maturity: active
- function: configuration-management, serialization, developer-tools
- domain: developer-tools, backend
- platform: rust, cross-platform
- tags: 12-factor-apps, config-files, environment-variables, serde, layered-config, hot-reload, automation

## Member repositories
- rust-cli/config-rs (main) score 77

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:07:48.615582+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:24:46.410632+00:00, confidence not recorded.
  - readme: https://github.com/rust-cli/config-rs (fetched 2026-08-28T04:07:48.615582+00:00, sha 91de10322dd3)
  - homepage: https://docs.rs/config/latest/config/ (fetched 2026-08-29T09:38:26.262644+00:00, sha a9478fd701e2)
  - site_page: https://docs.rs/ (fetched 2026-08-29T09:38:26.271607+00:00, sha 204b338e455b)
  - site_page: https://docs.rs/crate/config/latest (fetched 2026-08-29T09:38:26.273322+00:00, sha e934757cc53d)
  - site_page: https://docs.rs/crate/config/latest/features (fetched 2026-08-29T09:38:26.275116+00:00, sha 9969f9a0b1df)
  - site_page: https://docs.rs/about (fetched 2026-08-29T09:38:26.276600+00:00, sha 29ab7986fbf5)
  - site_page: https://docs.rs/about/badges (fetched 2026-08-29T09:38:26.277989+00:00, sha 6588cac258af)
  - site_page: https://docs.rs/about/builds (fetched 2026-08-29T09:38:26.279346+00:00, sha 811231ca4680)
  - site_page: https://docs.rs/about/metadata (fetched 2026-08-29T09:38:26.280946+00:00, sha 0dcdccb2b2b2)
  - site_page: https://docs.rs/about/redirections (fetched 2026-08-29T09:38:26.282824+00:00, sha 1b1efd93105f)
- Data as of 2026-08-30T08:39:29.467469+00:00.
