@hackernews@die-partei.social
The Hashicorp Configuration Language (HCL) saw significant growth in usage over the past year. This was driven by the growth in the popularity of the Terraform tool and IaC practices to increasingly automate deployments (notably, Go and Shell also saw big increases).
https://github.com/hashicorp/hcl
HCL is a toolkit for creating structured configuration languages that are both human- and machine-friendly, for use with command-line tools. Although intended to be generally useful, it is primarily targeted towards devops tools, servers, etc.
......
HCL has both a native syntax, intended to be pleasant to read and write for humans, and a JSON-based variant that is easier for machines to generate and parse.
The HCL native syntax is inspired by libucl, nginx configuration, and others.
It includes an expression syntax that allows basic inline computation and, with support from the calling application, use of variables and functions for more dynamic configuration languages.
HCL provides a set of constructs that can be used by a calling application to construct a configuration language. The application defines which attribute names and nested block types are expected, and HCL parses the configuration file, verifies that it conforms to the expected structure, and returns high-level objects that the application can use for further processing.
.......
A lower-level API is available for applications that need more control over the parsing, decoding, and evaluation of configuration.
........
HCL was heavily inspired by libucl, by Vsevolod Stakhov.
HCL and HIL originate in HashiCorp Terraform, with the original parsers for each written by Mitchell Hashimoto.
The original HCL parser was ported to pure Go (from yacc) by Fatih Arslan. The structure-related portions of the new native syntax parser build on that work.
The original HIL parser was ported to pure Go (from yacc) by Martin Atkins. The expression-related portions of the new native syntax parser build on that work.
HCL 2, which merged the original HCL and HIL languages into this single new language, builds on design and prototyping work by Martin Atkins in zcl.