zcfg
March 3, 2026 ยท View on GitHub
Zero Dependency Configuration Utility
A one-class configuration loader for Java applications that reads standard Java properties files from global user directory, local project directory, and system properties with defined precedence rules. No external dependencies required.

Usage
// Initialize once at application startup
ZCfg.load("myapp");
// Access configuration values with defaults
var port = ZCfg.integer("server.port", 8080);
var debug = ZCfg.bool("debug.enabled", false);
var dbUrl = ZCfg.string("db.url", "localhost:5432");
// Comma-separated values as list
var hosts = ZCfg.strings("cluster.hosts");
// e.g. "a,b,c" -> ["a", "b", "c"]
Configuration Loading Order
ZCfg.load("myapp") merges properties from three sources, each overwriting the previous:
$HOME/.myapp/app.properties- Global user configuration (user.homesystem property)./app.properties- Local project configuration (current working directory)- System properties via
-Dflags, e.g.,-Dserver.port=9090
Scaffolding
zcfgCreate creates empty configuration files for an application:
zcfgCreate myapp
# Created /Users/you/.myapp/app.properties
# Created ./app.properties
Install: cp zcfgCreate /usr/local/bin/
Properties Format
Uses standard Java properties format:
# Database configuration
db.url=localhost:5432
db.username=admin
db.timeout=30
# Server settings
server.port=8080
debug.enabled=true
# List values (comma-separated)
cluster.hosts=host1,host2,host3