Using HCL in a Go application ============================= HCL is itself written in Go_ and currently it is primarily intended for use as a library within other Go programs. This section describes a number of different ways HCL can be used to define and process a configuration language within a Go program. For simple situations, HCL can decode directly into Go ``struct`` values in a similar way as encoding packages such as ``encoding/json`` and ``encoding/xml``. The HCL Go API also offers some alternative approaches however, for processing languages that may be more complex or that include portions whose expected structure cannot be determined until runtime. The following sections give an overview of different ways HCL can be used in a Go program. .. toctree:: :maxdepth: 1 :caption: Sub-sections: go_parsing go_diagnostics go_decoding_gohcl go_decoding_hcldec go_expression_eval go_decoding_lowlevel go_patterns .. _Go: https://golang.org/