TOML-Konfiguration (.toml)

TOML Standard

Tom's Obvious Minimal Language (TOML) ist ein eindeutiges, auf den Menschen ausgerichtetes Konfigurationsformat, das vom GitHub-Mitbegründer Tom Preston-Werner erstellt wurde und in modernen Programmierökosystemen wie Rust (Cargo) und Python (pyproject.toml) weit verbreitet ist.

Von TOML zu JSON konvertieren

Kostenloser Konverter von TOML zu JSON im Browser. Konvertieren Sie Dateien sofort auf Ihrem Gerät.

Untersuchen & Metadaten

Betriebssysteme und Dateianalysatoren identifizieren TOML-Dateien durch Untersuchung der führenden binären Byte-Sequenz:

Dateien auswählen oder hierher ziehen

100 % private Konvertierung im Browser - Dateien verlassen niemals Ihr Gerät

oder einfügen Strg+V
Datenschutzgarantie ohne Netzwerkübertragung: 0 Bytes an externe Server hochgeladen. Die gesamte Verarbeitung erfolgt lokal in Ihrer Browser-Sandbox.

Byte-basierte Headersignatur (Magic Bytes)

Betriebssysteme und Dateianalysatoren identifizieren TOML-Dateien durch Untersuchung der führenden binären Byte-Sequenz:

HEX-SIGNATUR (OFFSET 0):

5B ... 5D

ASCII-DARSTELLUNG: [...]

Standardisierung: TOML v1.0.0 Spezifikation

Technische Daten

Container-ArchitekturMenschenlesbare Konfigurationsdatei, die sich eindeutig auf eine Hashtabelle abbildet und mit [Tabellen] und Schlüssel-Wert-Paaren strukturiert ist
KompressionUnkomprimierter Textdatenstrom
Byte-EndiannessUTF-8-Textdatenstrom
FarbräumeNicht zutreffend (Konfigurationsdatei)
Kanäle & StrukturTabellen, Tabellenarrays, Inline-Tabellen, Zeichenfolgen, Ganzzahlen, Gleitkommazahlen, Booleans und RFC 3339-Datums-/Zeitangaben
Max. AbmessungenUnbegrenzte Textlänge
TransparenzKeine
Streaming & ProgressivSequenzielle zeilenweise Konfigurationsanalyse

Technischer Vergleich: TOML im Vergleich zu Wettbewerbern

Technisches AttributTOML (Aktuell)YAMLJSONINI
MehrdeutigkeitsrisikoNull (streng eindeutige Spezifikation)Hoch (Boolean-Bugs beim YAML 'Norwegen-Problem')Null (strenge Datentypen)Moderat (kein formaler Standard)
Native Datums-/ZeittypenNative RFC 3339-Datums- und ZeitunterstützungImplizite String-/DatumsanalyseKeine (nur Strings)Keine (nur Strings)
KommentarunterstützungNativ (#-Kommentare)Nativ (#-Kommentare)Keine Kommentare erlaubtNativ (; und #-Kommentare)
Primäres ÖkosystemRust (Cargo), Python (PEP 518), GoKubernetes, Ansible, CI/CD-PipelinesWeb-APIs, Browser-KommunikationLegacy Windows, Git-Konfiguration

Häufige Korruptionsarten & Hex-Wiederherstellungsleitfaden

Parserfehler: 'Duplicate key in table' oder 'Invalid table header'.

Ursache: Versuch, einen vorhandenen Schlüssel oder Tabellennamensraum innerhalb des Dokuments neu zu definieren.

Wiederherstellung: Validieren und formatieren Sie die TOML-Syntax mit dem File2File TOML Formatter neu.

Sicherheitsanalyse & Parser-Angriffsvektore

TOML-Parser müssen sich vor Prototypenverschmutzung und CPU-Ermüdung durch pathologische Tabellenarray-Verschachtelung schützen.

Bekannte Angriffsvektore

  • Prototypenverschmutzung in JavaScript-TOML-Parsern, die Eigenschaften in Object.prototype einschleust.
  • Denial of Service durch tief verschachtelte Tabellenarray-Deklarationen.
  • Unbegrenzte Speicherallokation bei der Analyse massiver Inline-Arrays.

Bewährte Sicherheitsverfahren: Validieren Sie Tabellenverschachtelungslimits und verwenden Sie prototypverschmutzungssichere Wörterbuchobjekte.

Historische Ursprünge & Meilensteine

2021TOML v1.0.0 formell veröffentlicht, wodurch die Kernsyntaxspezifikation eingefroren wurde.
2018Python standardisiert auf 'pyproject.toml' (PEP 518) als modernen Build-Konfigurationsstandard.
2013Tom Preston-Werner veröffentlicht TOML, um ein sauberes Konfigurationsformat ohne die Komplexität von YAML bereitzustellen.

Hauptvorteile & Stärken

  • Vollkommen eindeutig: bildet sich sauber und vorhersehbar auf eine Hashtabelle ab, ohne überraschende Typumwandlungen.
  • Erstklassige native Datums-/Zeitunterstützung (RFC 3339-Zeitstempel, Datumsangaben, Zeiten) ohne String-Maskierung.
  • Übernommen als offizieller Standardkonfigurationsstandard für moderne Sprachentwicklungs-Tools (Rust Cargo.toml, Python pyproject.toml).

Technische Einschränkungen & Nachteile

  • Tief verschachtelte mehrstufige Objektbäume können im Vergleich zu YAML ausführlich werden.
  • Die Syntax für Tabellenarrays ([[table.array]]) kann für Anfänger unintuitiv sein.
  • Weniger kompakt als JSON für hochdurchsatzstarken Maschine-zu-Maschine-API-Datenaustausch.

Interessante technische Wissenswertes

  • TOML wurde von Tom Preston-Werner erstellt, der auch GitHub mitbegründet und Gravatar sowie SemVer (Semantic Versioning) ins Leben gerufen hat.
  • Die Datei 'Cargo.toml' in jedem Rust-Projekt spezifiziert alle Paketabhängigkeiten und Compiler-Flags im TOML-Format.
  • Im Gegensatz zu JSON unterstützt TOML nativ Kommentare (über das '#'-Zeichen) und mehrzeilige Zeichenfolgen.

Häufig gestellte technische Fragen

Wofür wird TOML verwendet?

TOML wird für Softwarekonfigurationen verwendet, am bekanntesten in Rusts Cargo.toml, Pytons pyproject.toml, Go Hugo-Konfigs und Container-Tools.

Warum wird TOML gegenüber YAML für Konfigurationen bevorzugt?

TOML vermeidet die berüchtigten Edge-Case-Parsing-Bugs von YAML (wie unquoted 'NO', das zu dem Boolean false wird), während es durch Kommentare und klare Tabellen benutzerfreundlich bleibt.

Wie kann ich TOML in JSON oder YAML konvertieren?

Sie können TOML-Dateien direkt in Ihrem Webbrowser mit File2File.app sofort in JSON oder YAML konvertieren.