Confii

Confii

A comprehensive, production-ready configuration management library for Python.

PyPI Version Python Versions License CI Status

Confii provides a unified interface for loading, merging, validating, and accessing configuration from multiple sources with enterprise-grade features like secret management, schema validation, observability, versioning, and async support.

Getting Started

Install Confii:

pip install confii

Load your first config:

from confii import Config
from confii.loaders import YamlLoader

config = Config(loaders=[YamlLoader("config.yaml")])
print(config.database.host)

Key Features

Configuration Sources

YAML, JSON, TOML, INI, .env, environment variables, AWS S3, Azure Blob, GCS, HTTP, Git

Secret Management

AWS Secrets Manager, HashiCorp Vault (9 auth methods), Azure Key Vault, GCP Secret Manager

Type Safety

Config[T] generics with Pydantic models, full IDE autocomplete

Validation

Pydantic and JSON Schema validation with defaults

Dynamic Reloading

File watching with incremental reload, on-change callbacks

Merge Strategies

6 strategies (replace, merge, append, prepend, intersection, union) with per-path overrides

Introspection

keys(), has(), get(), explain(), schema(), source tracking

Versioning

Save, compare, and rollback configuration versions

Drift Detection

Compare actual vs intended configuration

Observability

Access metrics, event emission, debug reports

Async Support

First-class async/await API

CLI Tools

validate, export, debug, explain, diff, migrate, lint, load

Documentation

Indices and tables