Top Qs
Timeline
Chat
Perspective
TOML
Configuration file format From Wikipedia, the free encyclopedia
Remove ads
Tom's Obvious, Minimal Language (TOML, originally Tom's Own Markup Language)[2] is a file format for configuration files.[3] It is intended to be easy to read and write due to following commonplace syntax and semantics which aim to be minimal, and it is designed to map unambiguously to a dictionary. Originally created by Tom Preston-Werner, its specification is open source. TOML is used in a number of software projects[4][5][6] and is implemented in many programming languages.[7]
Remove ads
Syntax
TOML's syntax primarily consists of, among other constructs, key = value
pairs, [section names]
, and #
(for comments). TOML's syntax somewhat resembles that of .INI files, but it has one agreed-upon formal specification, whereas the .INI format suffers from many competing variants, many 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 = "ImpalaPay Co."
[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"
Remove ads
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
[8] - Rust package manifests
Cargo.toml
[4] - Julia project settings
Project.toml
and package manifestsManifest.toml
[9] - Blender add-on manifests
blender_manifest.toml
[10] - Gradle version catalogs
libs.versions.toml
[11] - Taplo configurations
.taplo.toml
andtaplo.toml
[12] - Prettier configurations
.prettierrc.toml
[13]
Remove ads
Criticism
TOML has been criticized on a number of points:[14][15]
- TOML is verbose; it is not DRY and is syntactically noisy.
- TOML's hierarchies can be difficult to infer from syntax alone.
- Overcomplication: TOML has too many features.
- In TOML, the syntax determines the data types ("syntax typing").
Implementations
See also
References
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads