A Python library for managing configuration with support for multiple file formats, environment variables, and secret storage.
Dynaconf is a configuration management library for Python that centralizes application settings across multiple environments and file formats. It solves the problem of managing configurations securely, with built-in support for environment variables, secret storage, and validation. The library follows 12-factor app principles to ensure consistency and security in development and production.
Python developers building applications that require flexible and secure configuration management across different environments. It is particularly useful for teams working with web frameworks like Django and Flask.
Developers choose Dynaconf for its simplicity, support for multiple file formats, and built-in integrations with secret management services like Hashicorp Vault. Its layered environment system and CLI tools streamline configuration workflows, reducing boilerplate and enhancing security.
Configuration Management for Python ⚙
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports TOML, YAML, JSON, INI, and Python files, allowing developers to choose their preferred configuration format without extra conversion tools.
Full integration with environment variables, including dotenv support, enables easy overrides for different deployment environments, following 12-factor app principles.
Offers protection for sensitive data with built-in support for Hashicorp Vault and Redis, reducing the risk of exposing secrets in configuration files.
Includes ready-to-use extensions for Django and Flask, simplifying configuration setup and management for these popular web frameworks.
Provides command-line tools for initializing, listing, validating, and exporting settings, enhancing developer productivity and reducing manual work.
The init command creates multiple files and requires a specific import structure, which can be cumbersome for projects with straightforward configuration needs.
Settings are loaded dynamically at runtime, lacking static type validation, which might lead to configuration errors that are only caught during execution.
For secure production use, it necessitates integration with Hashicorp Vault or similar services, adding an external dependency and setup overhead beyond local files.