TOML
| Filename extension | .toml |
|---|---|
| Internet media type | application/toml |
| Developed by |
|
| Initial release | 23 February 2013 |
| Type of format | Data interchange |
| Website | {{{1}}} |
Tom's Obvious, Minimal Language (TOML, originally Tom's Own Markup Language)[1] is a file format for configuration files.[2] 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[3][4][5] and is implemented by all popular programming languages.[6]
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"
Use cases
TOML is used in a variety of settings (some related to its creator), 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[7] - Rust package manifests
Cargo.toml[3] - Julia project settings
Project.tomland package manifestsManifest.toml[8] - Blender add-on manifests
blender_manifest.toml[9] - Gradle version catalogs
libs.versions.toml[10] - Taplo configurations
.taplo.tomlandtaplo.toml[11] - Prettier configurations
.prettierrc.toml[12]
Implementations
See also
References
- ↑ Preston-Werner, Tom (2013-02-24). "Initial commit · toml-lang/toml@84db252". https://github.com/toml-lang/toml/commit/84db252ed19561ef6f966cb3e470f04b32800add.
- ↑ Preston-Werner, Tom; Gedam, Pradyun (January 11, 2021). "TOML: English v1.0.0". https://toml.io/en/v1.0.0.
- ↑ 3.0 3.1 "The Manifest Format - The Cargo Book". https://doc.rust-lang.org/cargo/reference/manifest.html.
- ↑ DeVault, Drew (2021-07-28). "My wish-list for the next YAML". https://drewdevault.com/2021/07/28/The-next-YAML.html. "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."
- ↑ "TOML: Tom's Obvious Minimal Language". https://toml.io/en/.
- ↑ "toml-lang/toml". 23 May 2022. https://github.com/toml-lang/toml.
- ↑ "PEP 518 – Specifying Minimum Build System Requirements for Python Projects | peps.python.org" (in en). https://peps.python.org/pep-0518/#specification.
- ↑ "10. Project.toml and Manifest.toml · Pkg.jl". https://pkgdocs.julialang.org/v1/toml-files/.
- ↑ Blender Documentation Team (2025-08-17). "How to Create Extensions ; Manifest". https://docs.blender.org/manual/en/latest/advanced/extensions/getting_started.html#manifest.
- ↑ Gradle, Inc. (2025). "Version Catalogs". https://docs.gradle.org/current/userguide/version_catalogs.html.
- ↑ Ferenc Tamás (2022-06-16). "Configuration File". https://taplo.tamasfe.dev/configuration/file.html.
- ↑ "Configuration File". https://prettier.io/docs/configuration.
- ↑ "tomllib — Parse TOML files". https://docs.python.org/3/library/tomllib.html.
- ↑ Ferenc Tamás. "Taplo ; A versatile, feature-rich TOML toolkit.". https://taplo.tamasfe.dev/., Ferenc Tamás. "Taplo (source repository)". https://github.com/tamasfe/taplo.
