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 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]
Remove ads
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"
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.tomland package manifestsManifest.toml[9] - Blender add-on manifests
blender_manifest.toml[10] - Gradle version catalogs
libs.versions.toml[11] - Taplo configurations
.taplo.tomlandtaplo.toml[12] - Prettier configurations
.prettierrc.toml[13]
Remove ads
Implementations
See also
References
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads