Axum Config
Configuration management for Axum applications. Load configuration from TOML files with environment variable support.
Features
- Load configuration from TOML files
- Environment variable interpolation (
${VAR}and${VAR:default}) - Integration with Axum as extractor
Installation
Usage
1. Define configuration structure
use Deserialize;
use config;
2. Create configuration file
config/config.toml:
[]
= "${DB_HOST:localhost}"
= 5432
= "${DB_USER:admin}"
3. Use in your application
use ;
use ;
use Arc;
async
// If your handlers are separated into another modules,
// it's recommended to rename `ExtractConfig` to `Config` for clarity.
// use axum_config::ExtractConfig as Config;
async
Configuration priority
- Explicit path:
Config::from_path("path/to/config.toml") - Environment variable:
CONFIG_FILE_PATH - Default path:
config/config.toml - Executable directory:
<exe_dir>/config/config.toml
Environment variables
Supports interpolation in TOML with default values:
[]
= "${HOST:0.0.0.0}" # Uses HOST or defaults to "0.0.0.0"
= "${PORT}" # Requires PORT to be defined
Available methods
let config = new.expect;
// Get configuration
let db = config.;
// With default if missing
let db = config.;
// Panics if missing
let db = config.;