== General == * [[https://github.com/oriontvv/convfmt|convfmt]]: converts between JSON any many other formats (incl. HOCON as of 0.18) * [[https://github.com/alceal/jty-converter|jty-converter]]: converts between JSON/TOML/YAML == HOCON (Human-Optimized Config Object Notation) == * [[https://blog.ometer.com/2015/09/07/json-like-config-a-spectrum-of-underoverengineering/|Introduction]], with comparison to other formats * [[https://github.com/lightbend/config/blob/main/HOCON.md|Specification]] * Examples * [[https://docs.spongepowered.org/stable/en/server/getting-started/configuration/sponge-conf.html|sponge's global.conf]] * [[https://www.puppet.com/docs/pe/2019.8/config_files.html|Writing HOCON from Puppet's documentation]] * Parsing into dataclasses * pyhocon + pydantic: https://gist.github.com/martin1keogh/2817e338fb06ad3573cffcfb8e713ac7 * another pyhocon + pydantic: https://gist.github.com/GreyElaina/d851e9c9304085f7101d45725d378f68 * [[https://github.com/chimpler/pyhocon/|pyhocon]]: Provides CLI tool for conversion between formats * Dataclasses for configuration management * [[https://github.com/zifeo/dataconf|dataconf]]: HOCON output by default * [[https://github.com/stasharrofi/pytyped/tree/master/pytyped-hocon|pytyped-hocon]] * [[https://github.com/maoertel/hoconvert|hoconvert]]: Rust-based HOCON converter == Others == * HConfig * Dhall * [[https://doc.dovecot.org/2.4.1/core/settings/syntax.html|Dovecot config syntax]] == HCL == * [[https://github.com/hashicorp/hcl|HashiCorp configuration language]] == TOML == == YAML == * [[https://github.com/crdoconnor/strictyaml/|crdoconnor/strictyaml]]: Type-safe parser and validator, subset of YAML 2.0 == Hjson == * [[https://lobste.rs/s/dn91bz/why_broot_is_switching_from_toml_hjson_for|Why broot is switching from TOML to Hjson for its configuration files]] == ucl (Universal Configuration Language) == * Used by FreeBSD, very similar to nginx * [[https://github.com/vstakhov/libucl|vstakhov/libucl]] * Seems best, similar to HOCON, but no modern Python package? * Install python bindings from libucl git repo: https://github.com/vstakhov/libucl/issues/202 == nginx conf == * [[https://pypi.org/project/crossplane-ng/|crossplane-ng]] / [[https://github.com/nginxinc/crossplane|crossplane] parses nginx conf in Python == KDL == * https://kdl.dev/