## How to use 1. Define a config structure, like below: ```go type RestfulConf struct { ServiceName string `json:",env=SERVICE_NAME"` // read from env automatically Host string `json:",default=0.0.0.0"` Port int LogMode string `json:",options=[file,console]"` Verbose bool `json:",optional"` MaxConns int `json:",default=10000"` MaxBytes int64 `json:",default=1048576"` Timeout time.Duration `json:",default=3s"` CpuThreshold int64 `json:",default=900,range=[0:1000]"` } ``` 2. Write the yaml, toml or json config file: - yaml example ```yaml # most fields are optional or have default values port: 8080 logMode: console # you can use env settings maxBytes: ${MAX_BYTES} ``` - toml example ```toml # most fields are optional or have default values port = 8_080 logMode = "console" # you can use env settings maxBytes = "${MAX_BYTES}" ``` 3. Load the config from a file: ```go // exit on error var config RestfulConf conf.MustLoad(configFile, &config) // or handle the error on your own var config RestfulConf if err := conf.Load(configFile, &config); err != nil { log.Fatal(err) } // enable reading from environments var config RestfulConf conf.MustLoad(configFile, &config, conf.UseEnv()) ```