TOML ist ein Format für Konfiguration, das eindeutige Regeln über Lesbarkeit stellt und dadurch die Fallstricke von YAML vermeidet.
- TOML
Ein Format für Konfigurationsdateien, dessen Regeln so gefasst sind, dass jede Datei genau eine Bedeutung hat.
Beispiel: „Die Werkzeugeinstellungen stehen in TOML, weil dort eine Postleitzahl nicht versehentlich zur Zahl wird.“Die Abkürzung steht für Tom's Obvious Minimal Language, benannt nach ihrem Erfinder Tom Preston-Werner, einem der GitHub-Gründer, auf Deutsch etwa Toms naheliegende minimale Sprache.
Was es gegenüber YAML besser macht
YAML versucht, Werte zu deuten, und erzeugt damit die bekannten Überraschungen: Eine führende Null verschwindet, und ein Wort wie no wird zum Wahrheitswert. TOML legt für jeden Typ eine eindeutige Schreibweise fest.
Dazu kommt die Struktur. Verschachtelung entsteht über Abschnitte in eckigen Klammern statt über Einrückung, womit ein verschobenes Leerzeichen folgenlos bleibt.
# Abschnitte statt Einrückung
titel = "Stuhl"
preis = 89.00
plz = "01067" # Text bleibt Text
verfuegbar = true
farben = ["rot", "blau"]
[hersteller]
name = "Beispiel GmbH"
land = "DE"Was es nicht kann
Tief verschachtelte Strukturen werden unübersichtlich. Wo YAML mit Einrückung beliebig tief geht, braucht TOML für jede Ebene einen eigenen Abschnitt mit vollem Pfad im Namen.
Für Konfiguration ist das selten ein Problem, weil die meisten Einstellungen flach sind. Wer verschachtelte Daten übertragen will, ist mit JSON besser bedient; dafür ist TOML auch nicht gedacht.
Wo es benutzt wird
In der Werkzeugwelt moderner Sprachen: Rust legt seine Paketdefinition darin ab, Python inzwischen ebenfalls. Im PHP- und JavaScript-Umfeld ist es selten, dort haben JSON und YAML die Rollen besetzt.
Begegnen kann es dir trotzdem, sobald in einem Projekt Werkzeuge aus diesen Welten mitlaufen, etwa ein in Rust geschriebener Formatierer.