Skip to content
yutils
Example

Input (TOML)

name = "yutils"
version = "0.1.0"

[tools]
count = 55
launched = true

[[contributors]]
name = "jade"

Output (JSON)

{
  "name": "yutils",
  "version": "0.1.0",
  "tools": {
    "count": 55,
    "launched": true
  },
  "contributors": [
    { "name": "jade" }
  ]
}

Note

Handles real-world Rust `Cargo.toml`, Python `pyproject.toml`, and similar. Round-trip conversion supported.

Usage / FAQ

When to use

  • Turn Cargo.toml, pyproject.toml, or uv.toml into JSON
  • Convert JSON config to TOML for Rust / Hugo / Zola projects
  • Convert static-site-generator front matter (Hugo, Zola)
  • Switch formats for Wrangler / Cloudflare configurations
  • Learn TOML by comparing it side-by-side with its JSON form

FAQ

Q.Which TOML spec is supported?
A.TOML 1.0.0. Date and datetime values (`2026-05-13T00:00:00Z`) are preserved precisely as JSON strings.
Q.How are array-of-tables (`[[...]]`) handled?
A.They become JSON arrays — `[[contributors]]` repeated twice maps to `{"contributors": [...]}` of length 2.
Q.Are comments preserved?
A.JSON has no comment syntax, so they drop during conversion and are not restored when round-tripping back to TOML.
Fun facts
  • TOML was created in 2013 by Tom Preston-Werner (co-founder of GitHub, creator of Gravatar). The slogan is 'obvious, minimal' — a sweet spot between YAML's subtle traps (indentation, floating-point quirks) and INI's lack of structure.

    TOML — Official site
  • Modern tooling has embraced TOML — Rust's `Cargo.toml`, Python's `pyproject.toml` (PEP 518 / 621). Unlike JSON it supports comments; unlike YAML it isn't indentation-sensitive — a balance of 'human-writable, machine-readable.'

    TOML — GitHub
  • TOML 1.0.0 was finalized in January 2021 — stable 8 years after creation. The 0.x versions went through several breaking revisions, which made 1.0 a real milestone.

    TOML 1.0.0 (2021)