TOML

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
TOML
Filename extension.toml
Internet media typenot registered
Developed byTom Preston-Werner
Community
Initial release23 February 2013; 6 years ago (2013-02-23)
Latest release
v0.5.0
(July 10, 2018; 16 months ago (2018-07-10))
Type of formatData interchange
Open format?Yes
Websitegithub.com/toml-lang/toml

TOML is a configuration file format that is intended to be easy to read and write due to obvious semantics which aim to be "minimal", and is designed to map unambiguously to a dictionary. Its specification is open-source, and receives community contributions. TOML is used in a number of software projects,[1][2][non-primary source needed] and is implemented in a large number of programming languages.[3]

Syntax[edit]

TOML's syntax primarily consists of key = "value" pairs, [section names], and # comments. TOML's syntax somewhat resembles that of .INI files, but it includes a formal specification, whereas the INI file format suffers from many competing variants.

Its specification includes a list of supported data types: String, Integer, Float, Boolean, Datetime, Array, and Table.

Example[edit]

# This is a TOML document.

title = "TOML Example"

[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00-08:00 # First class dates

[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true

[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"

[clients]
data = [ ["gamma", "delta"], [1, 2] ]

# Line breaks are OK when inside arrays
hosts = [
  "alpha",
  "omega"
]

Comparison to Other Configuration Formats[edit]

The following table draws on the TOML specification to make a comparison to other popular configuration formats (INI, JSON, and YAML).

Format Comparison
Format Formal Standard Flexible Standard Strongly Typed Easy Implementation Human Readable
JSON YES NO YES YES YES
YAML YES NO YES NO YES
TOML YES NO ? YES YES
INI NO YES NO YES YES

Name[edit]

The name "TOML" is an acronym for "Tom's Obvious, Minimal Language"[4] referring to its creator, Tom Preston-Werner.

See also[edit]

References[edit]

  1. ^ "Projects using TOML - TOML Wiki".
  2. ^ "The Manifest Format - The Cargo Book".
  3. ^ "Implementations - TOML Wiki".
  4. ^ "GitHub - toml-lang/toml: Tom's Obvious, Minimal Language".