Thanks to visit codestin.com
Credit goes to github.com

Skip to content

rfestag/holoconf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HoloConf

CI PyPI crates.io License: MIT

A multi-language hierarchical configuration library with a Rust core and bindings for Python.

Overview

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.

Read the Documentation

Key Features

  • 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

Installation

Python

pip install holoconf

Rust

[dependencies]
holoconf-core = "0.1"

CLI

cargo install holoconf-cli

Quick Start

Python

from 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")

Rust

use holoconf_core::Config;

let config = Config::from_file("config.yaml")?;
let db_host: String = config.get("database.host")?;

CLI

# Get a configuration value
holoconf get database.host --config config.yaml

# Dump resolved configuration
holoconf dump --config config.yaml --format json

Documentation

Testing

See the Testing Guide for information on running tests and the acceptance test framework.

Contributing

We welcome contributions! See the Contributing Guide for development setup and guidelines.

Architecture & Design

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A cross-language library for hierarchical dynamic configuration

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors