What TOML Is
TOML (Tom's Obvious, Minimal Language) is a configuration file format designed to be unambiguously readable by both humans and machines. It's the standard configuration format for Rust projects (Cargo.toml), Python packaging (pyproject.toml), and many Go tools. TOML 1.0 was released in January 2021 and is the first stable specification.
TOML Syntax Essentials
# Top-level keys
title = "My Project"
version = "1.0.0"
# Tables (sections)
[owner]
name = "Jane Developer"
email = "jane@example.com"
# Array of tables
[[dependencies]]
name = "express"
version = "4.18.0"
[[dependencies]]
name = "typescript"
version = "5.4.0"
# Inline tables
[server]
host = "0.0.0.0"
ports = [8000, 8001, 8002]
settings = { timeout = 30, retries = 3 }
Common TOML Errors
- Duplicate keys: TOML explicitly forbids duplicate keys — they're an error, not an override. Two
[owner]sections in the same file will fail to parse. - Mixed array types: TOML arrays must be homogeneous.
[1, "two", 3]is invalid. - Missing table headers: Keys like
owner.namewithout a[owner]parent table cause parse failures. - Incorrect date/time format: TOML supports
datetimeanddate-localtypes but they must follow the exact RFC 3339 format. - String type confusion: TOML has three string types: basic (
""), literal (''), and multi-line basic (""" """). Each handles escaping differently.
Formatting Best Practices
- Use blank lines between sections for readability.
- Indent table contents with 2 spaces (not tabs — TOML requires spaces for indentation in multi-line strings).
- Sort keys alphabetically or logically — don't mix.
- Use literal strings (
'') for regex and Windows paths to avoid escaping backslashes. - Keep inline tables short (< 80 chars); use regular tables for anything longer.
Format & Validate TOML Instantly
Paste your TOML into ToolsVito's TOML Formatter to format with proper indentation and validate syntax against the TOML 1.0 spec. All processing in your browser.