Jump to content

TOML

From Wikipedia, the free encyclopedia
TOML
Filename extension
.toml
Internet media type
application/toml
Developed by
Initial release23 February 2013; 12 years ago (2013-02-23)
Latest release
1.0.0[1]
12 January 2021; 4 years ago (12 January 2021)
Type of formatData interchange
Open format?Yes
Websitetoml.io Edit this at Wikidata

Tom's Obvious, Minimal Language (TOML, originally Tom's Own Markup Language)[2] is a file format for configuration files.[3] 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[4][5][6] and is implemented by all popular programming languages.[7]

Syntax

[edit]

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

[edit]
# 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"

Use cases

[edit]

TOML is used in a variety of settings (some related to its creator), such as:

Implementations

[edit]

See also

[edit]

References

[edit]
  1. ^ "Release 1.0.0". 12 January 2021. Retrieved 17 January 2021.
  2. ^ Preston-Werner, Tom (2013-02-24). "Initial commit · toml-lang/toml@84db252". GitHub. Archived from the original on 2024-06-15. Retrieved 2024-06-15.
  3. ^ Preston-Werner, Tom; Gedam, Pradyun (January 11, 2021). "TOML: English v1.0.0". Archived from the original on January 29, 2024. Retrieved January 27, 2024.
  4. ^ a b "The Manifest Format - The Cargo Book". doc.rust-lang.org. Archived from the original on 2019-08-26. Retrieved 2023-07-08.
  5. ^ DeVault, Drew (2021-07-28). "My wish-list for the next YAML". Archived from the original on 2024-03-09. Retrieved 2021-07-28. YAML is both universally used, and universally reviled. It has a lot of problems, but it also is so useful in solving specific tasks that it's hard to replace. Some new kids on the block (such as TOML) have successfully taken over a portion of its market share, but it remains in force in places where those alternatives show their weaknesses.
  6. ^ "TOML: Tom's Obvious Minimal Language". toml.io. Archived from the original on 2022-08-08. Retrieved 2022-08-08.
  7. ^ "toml-lang/toml". GitHub. 23 May 2022. Archived from the original on 15 February 2017. Retrieved 16 December 2016.
  8. ^ "PEP 518 – Specifying Minimum Build System Requirements for Python Projects | peps.python.org". Python Enhancement Proposals (PEPs). Retrieved 2025-02-04.
  9. ^ "10. Project.toml and Manifest.toml · Pkg.jl". pkgdocs.julialang.org. Archived from the original on 2023-07-08. Retrieved 2023-07-08.
  10. ^ Blender Documentation Team (2025-08-17). "How to Create Extensions ; Manifest". Retrieved 2025-08-17.
  11. ^ Gradle, Inc. (2025). "Version Catalogs". Retrieved 2025-08-17.
  12. ^ Ferenc Tamás (2022-06-16). "Configuration File". Retrieved 2025-08-17.
  13. ^ "Configuration File". Retrieved 2025-08-17.
  14. ^ "tomllib — Parse TOML files". Python documentation. Archived from the original on 2024-06-11. Retrieved 2023-07-08.
  15. ^ Ferenc Tamás. "Taplo ; A versatile, feature-rich TOML toolkit". Retrieved 2025-08-17., Ferenc Tamás. "Taplo (source repository)". Retrieved 2025-08-17.