YAML to TOML Converter
Convert YAML to TOML free in your browser, no sign-up or upload required. Automatically turns nested YAML into TOML tables and array-of-tables, with typed dates and clear null handling.
Aktualisiert am
Häufig gestellte Fragen
Are comments preserved when converting YAML to TOML?
No. Both formats support `#` line comments, but comments are trivia attached to the source text, not to the data model. The converter parses YAML into mappings, sequences, and scalars, then re-serializes that structure as TOML — any `#` comments in the original YAML are discarded in the process and won't appear in the TOML output.
How are YAML's inline (flow-style) mappings and lists converted?
YAML lets you write a mapping or sequence inline, like `{host: localhost, port: 5432}` or `[web, production]`, as an alternative to multi-line block style. TOML has a direct equivalent — inline tables (`{ host = "localhost", port = 5432 }`) and inline arrays (`["web", "production"]`). Since flow and block YAML parse to the identical data structure, the converter treats them the same way regardless of which style the source file used.
Does the converter preserve the order of keys from the source YAML?
Yes. TOML's spec doesn't require any particular key order for two documents to be considered equivalent, but the converter still emits keys in the order they appeared in the YAML source, since standard parsers (PyYAML, js-yaml, ruamel.yaml) retain document order by default — this keeps diffs against the original file predictable.
What happens if a YAML key isn't a valid TOML bare key?
TOML restricts unquoted ("bare") keys to ASCII letters, digits, underscores, and dashes. A YAML key like `first name` (a space) or `api.version` (a literal dot, which TOML would otherwise read as nested-table notation) doesn't fit that grammar, so the converter wraps it in quotes instead — producing `"first name" = "Jane"` — which TOML's spec defines as an equally valid alternative to a bare key.
Geht beim Umwandeln von YAML-Ankern und Aliasen in TOML etwas verloren?
Ja, aber verloren geht die Beziehung, nicht die Daten. YAML-Anker (`&name`) markieren einen Block zur Wiederverwendung, und Aliase (`*name`) kopieren diesen Inhalt an anderer Stelle im selben Dokument — häufig genutzt für gemeinsame Standardwerte, etwa einen `&defaults`-Anker, der über `<<: *defaults` in mehrere Umgebungskonfigurationen eingemischt wird. TOML kennt weder Anker noch Aliase noch Merge-Keys, weshalb der Konverter vor der Ausgabe jeden Alias zunächst zu seinem vollständig aufgelösten, wörtlichen Wert expandiert. Das Ergebnis ist datengleich — jedes Feld hat denselben Wert —, aber die 'einzige Quelle der Wahrheit' ist verschwunden: Änderte sich zuvor der Anker-Block, musste man ihn in YAML nur an einer Stelle anpassen, während man in TOML nun mehrere unabhängige Tables von Hand bearbeiten muss. Mehrdokument-YAML-Dateien (mehrere durch `---` getrennte Dokumente) stoßen aus einem anderen Grund an dieselbe Grenze: Eine TOML-Datei ist per Definition genau ein Dokument, sodass nur eines der YAML-Dokumente die Konvertierung übersteht.
Warum sollte ich eine YAML-Konfiguration nach TOML umwandeln, statt einfach bei YAML zu bleiben?
Meist weil eine bestimmte Toolchain TOML verlangt und YAML nicht als Ersatz akzeptiert. Rusts Cargo liest `Cargo.toml`; Pythons Poetry, Hatch und PDM lesen `pyproject.toml`; Hugo akzeptiert TOML-Front-Matter in Content-Dateien; und jedes Tool, das auf Rusts `toml`-Crate oder Gos BurntSushi/toml-Bibliothek aufbaut, erwartet speziell TOML. Teams, die Infrastruktur- oder CI-Konfiguration bereits in YAML pflegen — Ansible-Playbooks, GitHub-Actions-Workflows, Kubernetes-Manifeste —, müssen mitunter bestimmte Werte (Servicenamen, Ports, Versionsangaben) aus diesen Dateien herauslösen und in ein TOML-basiertes Projekt- oder Paket-Manifest überführen, ohne jedes Feld von Hand neu abzutippen und Anführungszeichen sowie Typen erneut zu prüfen. Das Ausführen des YAML-Ausgangsfragments durch einen Konverter ist schneller und weniger fehleranfällig als das manuelle Übertragen verschachtelter Schlüssel in geklammerte TOML-Tables, besonders bei größeren Konfigurationsblöcken mit mehreren Verschachtelungsebenen.
Wie alt sind YAML und TOML, und wie werden ihre Spezifikationen gepflegt?
YAML ist das deutlich ältere Format, um mehr als ein Jahrzehnt: Version 1.0 wurde 2004 von Clark Evans, Ingy döt Net und Oren Ben-Kiki veröffentlicht, und die aktuelle Revision, YAML 1.2.2, wurde 2021 finalisiert und definiert YAML als strikte Obermenge von JSON. TOML ist jünger und wurde 2013 von Tom Preston-Werner, einem Mitgründer von GitHub, geschaffen — mit dem Ziel, ein minimales, unzweideutiges Konfigurationsformat zu sein, eine Alternative sowohl zu YAMLs Komplexität als auch zu INIs fehlender Standardisierung. Cargo, Rusts Paketmanager, war ein früher und einflussreicher Anwender, was TOML als Standardwahl für Rust und später für Python-Paketmanifeste etablierte. TOML erreichte 2021 mit v1.0.0 seine erste stabile Version — demselben Jahr wie YAMLs letzte Revision —, sodass beide Spezifikationen, zwischen denen du heute konvertierst, jeweils in ihrer aktuellsten, stabilen Fassung vorliegen.
Ist TOML einfach eine vereinfachte Version von YAML?
Nein — auch wenn beide stellenweise ähnlich aussehen, wurden sie unabhängig voneinander entwickelt, und TOMLs Syntax steht INI-Dateien (`[section]`-Überschriften, `key = value`-Zeilen) näher als YAMLs einrückungsgetriebenem Block-Stil. TOML kennt bewusst keinen Unterschied zwischen Flow- und Block-Stil, keine Anker oder Aliase, keine eigenen Typ-Tags und keine Mehrdokument-Dateien — es zielt darauf ab, für jede Struktur genau einen Weg der Schreibweise zu bieten, und genau das erlaubt es diesem Konverter, YAMLs verschachtelte Mappings deterministisch auf TOML-Tables abzubilden. Die Beziehung funktioniert nur in eine Richtung sauber: Jedes gültige TOML-Dokument lässt sich verlustfrei in YAML ausdrücken, umgekehrt gilt das nicht, da YAMLs Funktionsumfang eine strikte Obermenge dessen ist, was TOMLs Grammatik überhaupt ausdrücken kann.
Wie geht die Konvertierung mit Daten und Zeitstempeln um?
Sauber, denn beide Formate behandeln sie als native Typen statt als Strings. YAMLs Core-Schema erkennt Zeitstempel-Skalare wie `2024-01-15` oder `2024-01-15T10:30:00Z` und markiert sie als Datumswerte statt als Text; TOML v1.0.0 definiert vier eigenständige Datums-/Zeittypen — Offset-Date-Time, Local-Date-Time, Local-Date und Local-Time — jeweils mit eigener Grammatik. Der Konverter bildet einen YAML-Zeitstempel auf denjenigen der vier TOML-Typen ab, der zu den tatsächlich vorhandenen Bestandteilen passt: Ein bloßes `2024-01-15` wird zu einem TOML-Local-Date, während ein Zeitstempel mit `Z`- oder `+00:00`-Offset zu einer Offset-Date-Time wird. Beide Formate folgen für diese Werte der RFC-3339-Formatierung, sodass keine Neuformatierung des Datumsstrings selbst nötig ist — nur die Typklassifizierung ändert sich auf der TOML-Seite.
Embed This Tool
Add a free, live version of this widget to your own website or blog post — it runs entirely in your visitors' browsers, with a credit link back to The Toolbox.
<iframe src="https://getthetoolbox.com/embed/yaml-to-toml" title="YAML to TOML Converter — The Toolbox" width="100%" height="420" style="max-width:480px;border:1px solid #e2e8f0;border-radius:12px" loading="lazy"></iframe>
<p style="font-size:12px;margin:4px 0 0"><a href="https://getthetoolbox.com/converter-tools/yaml-to-toml?utm_source=embed&utm_medium=widget" target="_blank" rel="noopener">Free YAML to TOML Converter</a> by The Toolbox</p>Verwandte Tools
Kostenloser Längenumrechner online
Rechnen Sie zwischen Metern, Fuß, Zoll, Meilen und weiteren Längeneinheiten um. Kostenlos, schnell und vollständig im Browser, ohne Anmeldung.
Kostenloser Gewichtsumrechner online
Rechnen Sie zwischen kg, Pfund, Unzen, Gramm und weiteren Gewichtseinheiten um. Kostenlos, schnell und vollständig im Browser, ohne Anmeldung.
Kostenloser Temperaturumrechner
Rechnen Sie Temperaturen sofort zwischen Celsius, Fahrenheit und Kelvin um. Kostenlos, schnell und vollständig im Browser, ohne Anmeldung.
Kostenloser Flächenumrechner online
Rechnen Sie zwischen Quadratmetern, Acres, Hektar und mehr um. Kostenlos, schnell und vollständig im Browser, ohne Anmeldung.
Über den YAML-zu-TOML-Konverter
YAML und TOML wollen beide menschenlesbare, typisierte Konfigurationsformate sein, lösen das Problem der Verschachtelung aber auf fast entgegengesetzte Weise. YAML drückt Struktur über Einrückung und mit Bindestrich eingeleitete Sequenzen aus (Block-Stil), mit einem optionalen Inline-Flow-Stil für dieselben Daten. TOML macht Struktur dagegen explizit über in Klammern gesetzte Abschnittsüberschriften und kennt überhaupt keine einrückungsbasierte Verschachtelung. Dieser Konverter parst dein YAML in sein zugrundeliegendes Datenmodell — Mappings, Sequenzen und typisierte Skalare — und gibt genau diese Daten anschließend in TOMLs Table-Syntax wieder aus.
Ein verschachteltes YAML-Mapping wird zu einer [table]-Überschrift. Aus folgendem:
database:
host: localhost
port: 5432
ssl: true
erzeugt der Konverter:
[database]
host = "localhost"
port = 5432
ssl = true
TOML verlangt diese explizite [table]-Überschrift für jedes verschachtelte Objekt — eine bloß tiefere Einrückung wie in YAML gibt es dort nicht. Der Konverter erzeugt diese Überschriften automatisch aus der Verschachtelungstiefe deines YAML, einschließlich gepunkteter Pfade für tiefere Strukturen (ein database.replica-Mapping wird zu [database.replica]).
Arrays von Objekten folgen derselben Logik expliziter Überschriften, allerdings mit doppelten Klammern. Eine YAML-Sequenz von Mappings:
servers:
- name: web1
ip: 10.0.0.1
- name: web2
ip: 10.0.0.2
wird zu TOMLs Array-of-Tables-Syntax:
[[servers]]
name = "web1"
ip = "10.0.0.1"
[[servers]]
name = "web2"
ip = "10.0.0.2"
Jede [[servers]]-Überschrift hängt dem servers-Array ein weiteres Element an — das ist die einzige Möglichkeit, wie TOML eine Liste von Objekten abbildet, während YAMLs --Sequenzmarker Listen jeden Elementtyps handhabt, ohne zwischen Objekten und Skalaren unterscheiden zu müssen.
Typisierte Skalare übertragen sich größtenteils eins zu eins. Beide Spezifikationen definieren Strings, Ganzzahlen, Fließkommazahlen, Booleans sowie Datums-/Zeitwerte als native, nicht-string-basierte Typen, sodass port: 5432 und enabled: true in YAML ohne zusätzliche Anführungszeichen zu port = 5432 und enabled = true in TOML werden — der Konverter muss dabei nichts raten, da YAML-Parser die Typen bereits gegen die Core-Schema-Tags von YAML 1.2 auflösen, bevor der TOML-Serializer sie überhaupt zu sehen bekommt.
Die Lücke betrifft alles, was YAML definiert, wofür TOMLs Spezifikation schlicht keinen Platz vorsieht. YAML kennt ein explizites Null (geschrieben als ~ oder null); TOMLs Typsystem kennt gar kein Null, weshalb dieser Konverter einen YAML-Null-Wert auf einen leeren String ("") abbildet — die naheliegendste form-erhaltende Entsprechung, auch wenn dadurch ein Feld, das explizit "kein Wert" bedeutete, nach der Konvertierung nicht mehr von einem Feld zu unterscheiden ist, das tatsächlich ein leerer String ist. YAML unterstützt außerdem Anker (&name) und Aliase (*name), mit denen ein Knoten den Inhalt eines anderen per Referenz wiederverwenden kann, sowie mehrere durch --- getrennte Dokumente innerhalb einer einzigen Datei; TOML kennt keinen der beiden Mechanismen, da eine TOML-Datei per Definition ein einziges flaches Dokument ohne interne Querverweise ist.
Entwickler greifen zu dieser Konvertierung meist nicht aus Vorliebe, sondern weil sie Konfiguration zwischen Ökosystemen bewegen müssen, die sich auf unterschiedliche Formate festgelegt haben — etwa Werte aus einer YAML-basierten CI-Pipeline oder einem Infrastruktur-Manifest zu übernehmen und in eine Rust-Cargo.toml, eine von Poetry oder Hatch konsumierte Python-pyproject.toml oder das TOML-Front-Matter eines Static-Site-Generators einzufügen — alles Werkzeuge, die speziell TOML parsen und YAML nicht als Ersatz akzeptieren.