HOME

TheInfoList



OR:

Tom's Obvious, Minimal Language (TOML, originally ''Tom's Own Markup Language'') is a
file format A file format is a Computer standard, standard way that information is encoded for storage in a computer file. It specifies how bits are used to encode information in a digital storage medium. File formats may be either proprietary format, pr ...
for
configuration file A configuration file, a.k.a. config file, is a computer file, file that stores computer data, data used to configure a software system such as an application software, application, a server (computing), server or an operating system. Some applic ...
s. It is intended to be easy to read and write due to obvious semantics which aim to be "minimal", and it is designed to map unambiguously to a
dictionary A dictionary is a listing of lexemes from the lexicon of one or more specific languages, often arranged Alphabetical order, alphabetically (or by Semitic root, consonantal root for Semitic languages or radical-and-stroke sorting, radical an ...
. Originally created by Tom Preston-Werner, its specification is
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
. TOML is used in a number of software projects and is implemented in many programming languages.


Syntax

TOML's syntax primarily consists of key = value pairs, ection names/code>, and # (for 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

# This is a TOML document. title = "ImpalaPay Co." atabaseserver = "192.168.1.1" ports = 8000, 8001, 8002 connection_max = 5000 enabled = true # Line breaks are okay when inside arrays hosts = "alpha", "omega" ervers # Indentation (tabs and/or spaces) is allowed, but not required ervers.alpha ip = "10.0.0.1" dc = "eqdc10" ervers.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: * Static site generators like Jekyll and Hugo. * Python programming language and package manifest * Rust package manifest * Julia project setting and package manifest * Blender add-on manifest. *
Gradle Gradle is a build automation tool for multi-language software development. It manages tasks like compilation, packaging, testing, deployment, and publishing. Supported languages include Java (as well as JDK-based languages Kotlin, Groovy, Sc ...
version cataloghttps://docs.gradle.org/current/userguide/version_catalogs.html


Criticism

TOML has been criticized on a number of points: * 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").


See also

* * INI file


References


External links

* {{Data Exchange Computer file formats Lightweight markup languages Markup languages