TOML

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
TOML
Dateiendung: .toml
MIME-Type: application/toml
Entwickelt von: Tom Preston-Werner
Erstveröffentlichung: 23.02.2013
Aktuelle Version 1.0.0[1]
(12. Januar 2021)
Art: Datenaustausch
https://toml.io


TOML ist ein Dateiformat für Konfigurationsdateien mit Fokus auf einfacher Lesbarkeit, die durch eine vereinfachte Semantik gewährleistet sein soll.

TOML hat das Ziel, sich einfach parsen und eindeutig in ein assoziatives Datenfeld umwandeln zu lassen. Die Spezifikation ist Open Source, das Projekt wird insbesondere durch die Community gepflegt. Das Akronym TOML steht für "Tom's Obvious, Minimal Language"[2], welches auf Tom Preston-Werner, einen der GitHub-Mitgründer, Bezug nimmt. TOML wird von einer Reihe an Softwareprojekten wie Cargo oder GitLab eingesetzt[3][4] und ist bereits in vielen Programmiersprachen implementiert.[5]

Syntax[Bearbeiten | Quelltext bearbeiten]

Die Syntax von TOML gleicht der von .INI-Dateien und besteht primär aus schluessel = "wert"-Paaren, [Abschnittsnamen] und # Kommentaren.

Nach der Spezifikation werden folgende Datentypen unterstützt: String, Integer, Float, Boolean, Datetime, Array und Table.

Beispiel[Bearbeiten | Quelltext bearbeiten]

# Das ist ein TOML-Dokument.
title = "TOML Beispiel"

[person]
name = "Tom Preston-Werner"
geburtstag = 1979-05-27T07:32:00-08:00

[datenbank]
adresse = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
verbindungen_max = 5000
aktiviert = true # booleans

[servers]

  # Einrücken (sowohl Tabs als auch Leerzeichen) ist erlaubt, aber nicht erforderlich
  [servers.alpha]
  ip = "10.0.0.1"
  dc = "eqdc10"

  [servers.beta]
  ip = "10.0.0.2"
  dc = "eqdc10"

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

# Zeilenumbrüche sind in Arrays möglich
hosts = [
  "alpha",
  "omega"
]

Kritik[Bearbeiten | Quelltext bearbeiten]

Obwohl kein Konsens besteht, hat TOML seit seiner ersten Veröffentlichung mehrere Kritiken erhalten:[6][7]

  • TOML ist nicht DRY und die Syntax ist „verrauscht“.
  • Die Hierarchie lässt sich teilweise nur schwierig aus der Syntax ableiten.
  • Überkomplikation: Wie YAML verfügt auch TOML über zu viele Funktionen.
  • Die Syntax entscheidet über den Datentyp (syntax typing).

Ähnliche Dateiformate[Bearbeiten | Quelltext bearbeiten]

Zu ähnlichen Formate für Konfigurationsdateien siehe Konfigurationsdatei#Dateiformate.

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Release 1.0.0. 12. Januar 2021 (abgerufen am 17. Januar 2021).
  2. GitHub - toml-lang/toml: Tom's Obvious, Minimal Language. Abgerufen am 21. April 2019.
  3. Projects using TOML - TOML Wiki. Abgerufen am 21. April 2019.
  4. The Manifest Format - The Cargo Book. Abgerufen am 21. April 2019.
  5. Implementations - TOML Wiki. Abgerufen am 21. April 2019.
  6. HitchDev: What is wrong with TOML?
  7. madmurphy: An INI critique of TOML