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 |
|
| Initial release | 23 February 2013 |
| Latest release | 1.0.0 12 January 2021 |
| Type of format | Data interchange |
| Open format? | Yes |
| Website | toml |
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.tomland package manifestsManifest.toml - Blender add-on manifests
blender_manifest.toml - Gradle version catalogs
libs.versions.toml - Taplo configurations
.taplo.tomlandtaplo.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?