TOML

Tom's Obvious, Minimal Language (TOML, originally Tom's Own Markup Language) is a file format for configuration files. It is designed to be easy to read and write by being minimal (unlike the more-complex YAML) and by using human-readable syntax. The project standardizes the implementation of the ubiquitous INI file format (which it has largely supplanted), removing ambiguity from its interpretation. Originally created by Tom Preston-Werner, the TOML specification is open source. TOML is used in a number of software projects and is implemented by all popular programming languages.

TOML
Filename extension
.toml
Internet media type
application/toml
Developed by
  • Tom Preston-Werner
  • Community
Initial release23 February 2013; 12 years ago (2013-02-23)
Latest release
1.0.0
12 January 2021; 4 years ago (12 January 2021)
Type of formatData interchange
Open format?Yes
Websitetoml.io

Syntax

TOML's syntax primarily consists of, among other constructs, key = value pairs, [section names], and # (for comments). TOML's syntax is a superset of the .INI format but has one agreed-upon formal specification, whereas the .INI format suffers from many competing variants (most implicitly specified through project-specific parsers).

Exceeding stringly-typed semantics, TOML supports the data types string, integer, float, boolean, datetime, array and table.

Example

# This is a TOML document.  title = "TOML Example"  [database] server = "192.168.1.1" ports = [ 8000, 8001, 8002 ] connection_max = 5000 enabled = true  # Line breaks are okay when inside arrays hosts = [  "alpha",  "omega" ]  [servers]   # Indentation (tabs and/or spaces) is allowed, but not required  [servers.alpha]  ip = "10.0.0.1"  dc = "eqdc10"   [servers.beta]  ip = "10.0.0.2"  dc = "eqdc10" 

Notable uses

TOML is used in a variety of settings such as:

  • Jekyll (a static site generator) configuration _config.toml (although configuration through YAML is also supported)
  • Hugo (a static site generator) configuration hugo.toml (although configuration through JSON or YAML are also supported)
  • Python 3 package manifests pyproject.toml
  • Rust package manifests Cargo.toml
  • Julia project settings Project.toml and package manifests Manifest.toml
  • Blender add-on manifests blender_manifest.toml
  • Gradle version catalogs libs.versions.toml
  • Taplo configurations .taplo.toml and taplo.toml
  • Prettier configurations .prettierrc.toml

See also

  • Configuration file § File format

wikipedia, wiki, encyclopedia, book, library, article, read, free download, Information about TOML, What is TOML? What does TOML mean?