A multi-language hierarchical configuration library with a Rust core and bindings for Python.
HoloConf provides a powerful and flexible configuration management system that works across multiple programming languages. Built with a high-performance Rust core, it offers language-specific bindings that feel native to each ecosystem while maintaining consistent behavior.
- Multi-language support - Rust core with native bindings for Python (JavaScript and Go coming soon)
- Interpolation - Reference environment variables (
${env:VAR}), other config values (${path.to.value}), and files (${file:config.yaml}) - Hierarchical merging - Combine multiple config files with predictable override behavior
- Schema validation - Validate configuration against JSON Schema
- Type coercion - Automatic conversion between compatible types based on schema definitions
- Lazy resolution - Values are resolved on access, not at parse time
pip install holoconf[dependencies]
holoconf-core = "0.1"cargo install holoconf-clifrom holoconf import Config
# Load from file
config = Config.from_file("config.yaml")
# Access values
db_host = config.get("database.host")
# With environment variable interpolation
# config.yaml: database.url: "${env:DATABASE_URL}"
db_url = config.get("database.url")use holoconf_core::Config;
let config = Config::from_file("config.yaml")?;
let db_host: String = config.get("database.host")?;# Get a configuration value
holoconf get database.host --config config.yaml
# Dump resolved configuration
holoconf dump --config config.yaml --format json- Getting Started - Installation and first configuration
- Interpolation - Variable substitution syntax
- Resolvers - Environment, file, and self-reference resolvers
- API Reference - Detailed API documentation
See the Testing Guide for information on running tests and the acceptance test framework.
We welcome contributions! See the Contributing Guide for development setup and guidelines.
- Architecture Decision Records - Design decisions and rationale
- Feature Specifications - Detailed feature specifications
This project is licensed under the MIT License - see the LICENSE file for details.