TOML (Tom's Obvious, Minimal Language) is a configuration file format designed to be easy to read and write with unambiguous mapping to hash tables. It is used by Rust's Cargo, Python's pyproject.toml, and many other modern development tools.
TOML was created by Tom Preston-Werner in 2013 to provide a configuration format that is more human-friendly than JSON while being unambiguous and easy to parse. It uses INI-inspired sections ([table]), key = value pairs, and supports nested tables, arrays, inline tables, and various data types including dates, times, and booleans.
TOML files use a simple key = value syntax. Tables are defined with [table] headers, and nested tables use [table.subtable]. Arrays of tables use [[array]]. Comments start with #. TOML supports strings, integers, floats, booleans, dates, times, and arrays. Its syntax is intentionally limited to avoid the complexity of YAML while providing more structure than INI files.
TOML stands for Tom's Obvious, Minimal Language, named after its creator Tom Preston-Werner.
TOML has simpler, more explicit syntax with no indentation dependency. YAML is more expressive with anchors, aliases, and multi-document support. TOML is easier to parse and less error-prone for configuration.
In the Python and Rust ecosystems, yes — pyproject.toml and Cargo.toml have become standard. However, JSON remains dominant for data interchange and web APIs where TOML is rarely used.