Loading comparison...
Loading comparison...
Tom's Obvious Minimal Language — a configuration file format designed to be easy to read. Used by Cargo (Rust) and pyproject.toml.
Tom Preston-Werner — co-founder of GitHub — created TOML (Tom's Obvious, Minimal Language) in 2013, frustrated by the ambiguities and complexity of existing configuration formats. TOML prioritizes being obvious to read, with a minimal syntax of key-value pairs organized into tables (sections) denoted by [square brackets]. The format has become the standard configuration language for several major ecosystems: Cargo.toml defines Rust project metadata and dependencies, pyproject.toml (PEP 518/PEP 621) is the modern Python project configuration standard, Hugo uses TOML for site configuration, and Deno uses it for configuration files. TOML supports strings, integers, floats, booleans, dates and times (RFC 3339), arrays, and tables (maps), with a clear distinction between inline and multi-line representations.
The specification reached version 1.0 in January 2021, marking stability after eight years of refinement. Unlike YAML, TOML avoids indentation-based scoping and implicit typing — every value's type is explicit from its syntax, eliminating the class of bugs where strings are accidentally parsed as numbers or booleans. Unlike JSON, TOML supports comments and is designed for human editing rather than machine interchange. The hierarchical table structure — where [table.subtable] headers define nested objects — provides a clean way to organize complex configurations without deep nesting.
Parsers exist for every major language, and the specification includes a comprehensive test suite for verifying parser compliance. TOML files are naturally structured as a tree of tables and key-value pairs, making them suitable for structural comparison that understands the difference between section reorganization and actual value changes.
TOML configuration changes in Cargo.toml and pyproject.toml directly affect build behavior, dependency resolution, and project metadata. Comparing TOML files catches modified dependency version constraints that may introduce breaking updates, altered feature flags that change compilation targets, changed build script configurations that affect output artifacts, and updated project metadata that impacts package registry listings.
Developers reviewing dependency updates need structural diff that groups changes by table section and highlights version constraint modifications alongside their context.
UtraDiff parses TOML files into a semantic tree, correctly handling sections, inline tables, and array-of-tables syntax. Reordered sections and keys are detected as identical, eliminating noise from different editor sort orders. Value type changes — such as a string becoming an integer — are flagged explicitly in the tree view.
The text diff runs alongside the structured view. Cross-format comparison supports diffing TOML against JSON, YAML, INI, or .env to verify configuration equivalence.
Supported extensions: .toml
TOML can be compared with: JSON, JSON5, JSONL, YAML, INI, Environment, Properties