What Is Wrong with TOML?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. json5

    JSON5 — JSON for Humans

    I can relate. But after using JSON for a while (in files that I edit by hand), I realised that I really wanted comments and trailing commas (which leads to https://nigeltao.github.io/blog/2021/json-with-commas-commen...). Next I'd probably want multiline strings (leading to https://github.com/json5/json5).

    But if you use those extensions, all your tooling breaks.

    I think the real bike-shedding would start when you want to add some syntax for raw string literals (e.g. heredocs); it's one of those features that feels redundant, until the day when you really need it and can't bear the pain of escaping.

  2. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  3. dhall-lang

    Maintainable configuration files

    Maybe you'd like jsonnet: https://jsonnet.org/

    I find it particularly useful for configurations that often have repeated boilerplate, like ansible playbooks or deploying a bunch of "similar-but" services to kubernetes (with https://tanka.dev).

    Dhall is also quite interesting, with some tradeoffs: https://dhall-lang.org/

    A few years ago I did a small comparison by re-implementing one of my simpler ansible playbooks: https://github.com/retzkek/ansible-dhall-jsonnet

  4. edn

    Extensible Data Notation

    EDN (Extensible Data Notation) is a subset of Clojure: https://github.com/edn-format/edn

    It is:

    - Streamable

    - Extensible

    - Whitespace-insensitive, but there are formatting conventions for readability

  5. cue

    The home of the CUE language! Validate and define text-based and dynamic configuration

  6. bcl

    Basic Configuration Language

    Related:

    just few days ago I crafted together some ideas i had couple of years already for a configuration language, syntactically like HCL but without HashiCorps idiosyncrasies.

    Here it goes, BCL (_Basic_ Configuration Language, for a lack of better name yet), Go prototype, I can code Python port and possibly several other as well..

    https://github.com/wkhere/bcl

  7. toml

    Tom's Obvious, Minimal Language

  8. direnv

    unclutter your .profile

    The more applications I write, the more I tend to avoid typical config files in favor of using direnv [0] to set environment variables.

    [0] https://direnv.net/

  9. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  10. ansible-dhall-jsonnet

    Maybe you'd like jsonnet: https://jsonnet.org/

    I find it particularly useful for configurations that often have repeated boilerplate, like ansible playbooks or deploying a bunch of "similar-but" services to kubernetes (with https://tanka.dev).

    Dhall is also quite interesting, with some tradeoffs: https://dhall-lang.org/

    A few years ago I did a small comparison by re-implementing one of my simpler ansible playbooks: https://github.com/retzkek/ansible-dhall-jsonnet

  11. tanka

    Flexible, reusable and concise configuration for Kubernetes

    Maybe you'd like jsonnet: https://jsonnet.org/

    I find it particularly useful for configurations that often have repeated boilerplate, like ansible playbooks or deploying a bunch of "similar-but" services to kubernetes (with https://tanka.dev).

    Dhall is also quite interesting, with some tradeoffs: https://dhall-lang.org/

    A few years ago I did a small comparison by re-implementing one of my simpler ansible playbooks: https://github.com/retzkek/ansible-dhall-jsonnet

  12. jsonnet

    Jsonnet - The data templating language

    Maybe you'd like jsonnet: https://jsonnet.org/

    I find it particularly useful for configurations that often have repeated boilerplate, like ansible playbooks or deploying a bunch of "similar-but" services to kubernetes (with https://tanka.dev).

    Dhall is also quite interesting, with some tradeoffs: https://dhall-lang.org/

    A few years ago I did a small comparison by re-implementing one of my simpler ansible playbooks: https://github.com/retzkek/ansible-dhall-jsonnet

  13. tomli

    A lil' TOML parser

    But the whitespace handling involved is an extra complication, at least the provided example fails to be parsed by `tomli`, which is following the currently release TOML spec: https://github.com/hukkin/tomli/issues/199

  14. go-toml

    Go library for the TOML file format

    I wrote one of the Go implementations [0] when TOML was announced and have maintained it since.

    As a library implementor, I wish arrays would hold only one type at a time, but I get that could be useful for users. But as a user, I wish tables were fully defined once (more can't be added up later in the file), especially when using larger files.

    [0]: https://github.com/pelletier/go-toml

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Show HN: Keep – GitHub Actions for your monitoring tools

    5 projects | news.ycombinator.com | 4 Sep 2023
  • Should i migrate from Kustomize to Helm?

    6 projects | /r/devops | 25 Nov 2022
  • Tsonnet, a humble beginning

    2 projects | dev.to | 22 Jan 2025
  • Kubernetes 101: Introduction

    2 projects | dev.to | 30 Jul 2024
  • Show HN: Qq: like jq, but can transcode between many formats

    6 projects | news.ycombinator.com | 24 Jun 2024

Did you know that Go is
the 4th most popular programming language
based on number of references?