A small V library for reading configuration from a TOML file & environment variables.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Jef Roosens 3a4b4b334e
chore: ran v fmt for V 0.3.3 changes
2 months ago
test feat: add bool type 3 months ago
.gitignore Moved over files from vieter repo 9 months ago
LICENSE chore: added license 9 months ago
README.md chore: added readme 3 months ago
bool_test.v chore: ran v fmt for V 0.3.3 changes 2 months ago
conf.v chore: ran v fmt for V 0.3.3 changes 2 months ago
conf_test.v chore: ran v fmt for V 0.3.3 changes 2 months ago
int_test.v chore: ran v fmt for V 0.3.3 changes 2 months ago
string_test.v chore: ran v fmt for V 0.3.3 changes 2 months ago
v.mod refactor: renamed module to conf 9 months ago

README.md

Vconf

Vconf is a small V library for loading in configuration from a TOML config file and/or environment variables.

Usage

Vconf works by reading configuration variables from both a TOML file and/or environment variables.

struct Config {
pub:
	port                 int    = 8000
	log_level            string = 'WARN'
	pkg_dir              string
	data_dir             string
	api_key              string
	default_arch         string
	global_schedule      string = '0 3'
	base_image           string = 'archlinux:base-devel'
	max_log_age          int    = -1
	log_removal_schedule string = '0 0'
	collect_metrics      bool   [empty_default]
}

This is an example of a configuration struct. The configuration can then be processed as follows:

conf := vconf.load<Config>(prefix: 'VIETER_', default_path: config_file)!

Configuration is defined completely as a V struct.

Progress

My goal is to eventually support most types that the TOML library supports. Currently supported:

  • Date
  • DateTime
  • Time
  • bool
  • f32
  • f64
  • i64
  • int
  • string
  • u64
  • []Any
  • map[string]Any

With the last one, my plan is to have this be another struct inside the top-level one. Configuration could then be defined recursively.