EN
Back to the archive

The encyclopedia · Software & IT · Product decision · 2013–2021

TOML won config files by making them obvious enough to read as plain text

GitHub's Tom Preston-Werner designed a minimal config format, and Rust and Python adopted it as their standard.

GitHub

the move

In 2013 configuration files were either terse and ambiguous or verbose and hard to edit. Tom Preston-Werner, co-founder of GitHub, published TOML — Tom's Obvious Minimal Language — aiming for a config format so obvious that a human could read it as plain text.

The design maps every document unambiguously to a hash table: keys, values, tables, arrays and dates all have one clear shape. Because there is no cleverness, writing a parser in a new language is a small job, and reviewing a config file never requires a manual.

Adoption followed the tooling: Rust's Cargo chose TOML for its manifests, Python standardized pyproject.toml for packaging, and Hugo, Alacritty and many others followed. The specification reached version 1.0 in 2021, cementing it as a mainstream standard.

why it works

  • Unambiguous syntax makes parsers easy to write everywhere
  • Human-readable files invite trust and review
  • Cargo's early adoption gave it a serious package-manager anchor
  • Python's pyproject.toml made it the default for an entire language
the payoffA config format obvious enough to read as plain textclever

what transfers

For a developer-facing format, readability is a feature: if the file is obvious to a human, adoption follows from trust.

what came after

TOML is now the default manifest format for Rust and Python packaging and is used across cloud, editor and build tooling. It competes with YAML and JSON but keeps its niche as the format that is easy for humans to read and machines to parse.

references

spotted an error? The archive wants to know.

same kind of clever