Skip to content

What is a TOML file?

TOML is a settings file you can read at a glance, and it means exactly one thing whichever tool loads it. It looks like an old INI file but handles dates, numbers and nested groups properly. You can convert TOML files here, both into the format and out of it.

Specification

TOML format specifications
Full nameTom's Obvious Minimal Language
Extensions.toml
Media typeapplication/toml
CompressionUncompressed
Transparency
Animation
Multiple pages
Colour depthUTF-8 key-value text with tables, arrays and native date types
Size limits
Introduced2013
Developed byTom Preston-Werner
StandardOpen
Browser supportNot displayed by browsers

What TOML is used for

  • Rust crate manifests in Cargo.toml
  • Python project metadata in pyproject.toml
  • Static site generator and CLI tool configuration
  • Settings files a person is expected to edit by hand

Strengths and limitations

What TOML does well

  • Unambiguous rules, so two programs always agree on what it means
  • Dates and times are first-class values rather than strings
  • Simple settings stay very readable

Where TOML falls short

  • Deeply nested settings get awkward and long-winded
  • Not built into browser or standard library tooling the way JSON is
  • Arrays of tables have a syntax people frequently get wrong

Convert TOML to

Every target this format can be written out as, each on its own page.

Convert to TOML

Everything that can be turned into a TOML file.

Questions about TOML

What is a .toml file?

TOML is a settings file you can read at a glance, and it means exactly one thing whichever tool loads it. The extension .toml identifies it, and its media type is application/toml.

How do I open a TOML file?

Browsers do not display TOML natively, so you either need software that understands it or you convert it to something more common first. Converting is usually the faster route when you only need to look at the contents once.

Is TOML lossy or lossless?

Uncompressed. Nothing is discarded, so repeated saves never degrade the contents.

What is TOML good for?

Unambiguous rules, so two programs always agree on what it means. Dates and times are first-class values rather than strings. Simple settings stay very readable. In practice that makes it a good fit for rust crate manifests in Cargo.toml, and Python project metadata in pyproject.toml.

What are the drawbacks of TOML?

Deeply nested settings get awkward and long-winded. Not built into browser or standard library tooling the way JSON is. Arrays of tables have a syntax people frequently get wrong.

Other data formats

Data converter or the full format reference