dc326dd882
"HCL Configuration Language" will feel redundant to anyone who thinks they know what "HCL" is supposed to stand for, even though our docs don't actually expand the abbreviation at all. This new version is also still redundant with that interpretation, but at least it emphasizes that it's a toolkit for creating configuration languages rather than a configuration language in its own right.
36 lines
1.3 KiB
ReStructuredText
36 lines
1.3 KiB
ReStructuredText
HCL Config Language Toolkit
|
|
===========================
|
|
|
|
HCL is a toolkit for creating structured configuration languages that are both
|
|
human- and machine-friendly, for use with command-line 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 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 argument
|
|
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.
|
|
|
|
At present, HCL is primarily intended for use in applications written in Go_,
|
|
via its library API.
|
|
|
|
.. toctree::
|
|
:maxdepth: 1
|
|
:caption: Contents:
|
|
|
|
intro
|
|
go
|
|
language_design
|
|
|
|
.. _libucl: https://github.com/vstakhov/libucl
|
|
.. _`nginx configuration`: http://nginx.org/en/docs/beginners_guide.html#conf_structure
|
|
.. _Go: https://golang.org/
|