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.
Actualizado
Preguntas Frecuentes
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.
¿Convertir anclas y alias de YAML a TOML hace que se pierda algo?
Sí, pero lo que se pierde es la relación, no los datos. Las anclas de YAML (`&nombre`) marcan un bloque para su reutilización, y los alias (`*nombre`) copian ese contenido en otro punto del mismo documento; se usan habitualmente para valores por defecto compartidos, como un ancla `&defaults` fusionada en varias configuraciones de entorno mediante `<<: *defaults`. TOML no tiene concepto de ancla, alias ni clave de fusión, así que antes de generar el TOML el conversor resuelve cada alias a su valor literal expandido. El resultado es equivalente en datos —cada campo conserva el mismo valor—, pero desaparece la "fuente única de verdad": si el bloque del ancla cambia, antes lo actualizabas una sola vez en YAML, mientras que en TOML ahora tienes varias tablas independientes que editar a mano. Los archivos YAML multidocumento (varios documentos separados por `---`) chocan con el mismo límite por una razón distinta: un archivo TOML es exactamente un documento, así que solo sobrevive a la conversión un documento YAML.
¿Por qué convertiría una configuración de YAML a TOML en lugar de simplemente mantener YAML?
Generalmente porque una herramienta concreta exige TOML y no aceptará YAML como sustituto. Cargo, de Rust, lee `Cargo.toml`; Poetry, Hatch y PDM, de Python, leen `pyproject.toml`; Hugo acepta front matter en TOML en los archivos de contenido; y cualquier herramienta construida sobre el crate `toml` de Rust o la librería BurntSushi/toml de Go espera específicamente TOML. Los equipos que ya mantienen su configuración de infraestructura o de CI en YAML —playbooks de Ansible, workflows de GitHub Actions, manifiestos de Kubernetes— a veces necesitan extraer valores concretos (nombres de servicios, puertos, versiones fijadas) de esos archivos y llevarlos a un proyecto o manifiesto de paquete basado en TOML, sin tener que retranscribir a mano cada campo ni revisar comillas y tipos uno por uno. Pasar el fragmento YAML de origen por un conversor es más rápido y con menos margen de error que transcribir manualmente claves anidadas a tablas TOML entre corchetes, sobre todo en bloques de configuración grandes con varios niveles de anidamiento.
¿Qué antigüedad tienen YAML y TOML, y cómo se mantienen sus especificaciones?
YAML es el formato más antiguo, por más de una década: la versión 1.0 se publicó en 2004, obra de Clark Evans, Ingy döt Net y Oren Ben-Kiki, y la revisión actual, YAML 1.2.2, se finalizó en 2021 y define YAML como un superconjunto estricto de JSON. TOML es más reciente y fue creado en 2013 por Tom Preston-Werner, cofundador de GitHub, específicamente para ser un formato de configuración mínimo y sin ambigüedades, una alternativa tanto a la complejidad de YAML como a la falta de estandarización de INI. Cargo, el gestor de paquetes de Rust, fue de los primeros adoptantes y su influencia ayudó a consolidar TOML como la opción por defecto en los manifiestos de paquetes de Rust y, más tarde, de Python. TOML alcanzó su primera versión estable, v1.0.0, en 2021, el mismo año de la última revisión de YAML, así que ambas especificaciones que estás convirtiendo hoy son sus versiones estables más actuales.
¿TOML es simplemente una versión simplificada de YAML?
No: aunque en algunos puntos se parecen, se diseñaron de forma independiente, y la sintaxis de TOML está más cerca de los archivos INI (encabezados `[sección]`, líneas `clave = valor`) que del estilo de bloque basado en sangría de YAML. TOML no tiene, deliberadamente, distinción entre estilo de flujo y de bloque, ni anclas o alias, ni etiquetas de tipo personalizadas, ni archivos multidocumento: busca que exista exactamente una forma de escribir cualquier estructura dada, que es precisamente lo que permite a este conversor transformar las asignaciones anidadas de YAML en tablas TOML de manera determinista. La relación solo funciona limpiamente en una dirección: cualquier documento TOML válido puede reexpresarse en YAML sin pérdida alguna, pero lo contrario no es cierto, ya que el conjunto de funciones de YAML es un superconjunto estricto de lo que la gramática de TOML es capaz de expresar.
¿Cómo gestiona la conversión las fechas y las marcas de tiempo?
De forma limpia, porque ambos formatos las tratan como tipos nativos y no como cadenas de texto. El esquema núcleo de YAML reconoce escalares de marca de tiempo como `2024-01-15` o `2024-01-15T10:30:00Z` y los etiqueta como fechas en lugar de texto plano; TOML v1.0.0 define cuatro tipos distintos de fecha/hora: fecha-hora con desfase (offset date-time), fecha-hora local, fecha local y hora local, cada uno con su propia gramática. El conversor asigna una marca de tiempo YAML al tipo de TOML que corresponda según los componentes realmente presentes: un `2024-01-15` sin más se convierte en una fecha local de TOML, mientras que una marca de tiempo con `Z` o con desfase `+00:00` se convierte en una fecha-hora con desfase. Ambos formatos siguen el formato RFC 3339 para estos valores, así que no hace falta reformatear la propia cadena de fecha: solo cambia la clasificación de tipo en el lado de TOML.
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>Herramientas Relacionadas
Conversor de Longitud Gratis en Línea
Convierte entre metros, pies, pulgadas, millas y más unidades de longitud. Gratis, rápido y funciona totalmente en tu navegador sin necesidad de registro.
Conversor de Peso Gratis en Línea
Convierte entre kg, libras, onzas, gramos y más unidades de peso. Gratis, rápido y funciona totalmente en tu navegador sin necesidad de registro.
Conversor de Temperatura Gratis
Convierte temperaturas entre las escalas Celsius, Fahrenheit y Kelvin al instante. Gratis, rápido y funciona totalmente en tu navegador sin necesidad de registro.
Conversor de Área Gratis en Línea
Convierte entre metros cuadrados, acres, hectáreas y más. Gratis, rápido y funciona totalmente en tu navegador sin necesidad de registro.
Acerca del Conversor de YAML a TOML
YAML y TOML persiguen el mismo objetivo —formatos de configuración legibles y con tipos de datos— pero resuelven el problema de "cómo represento el anidamiento" de maneras casi opuestas. YAML da a entender la estructura mediante la sangría y secuencias precedidas por guiones (estilo de bloque), con un estilo de flujo en línea opcional para los mismos datos. TOML hace la estructura explícita con encabezados de sección entre corchetes y no tiene ningún tipo de anidamiento basado en sangría. Este conversor analiza tu YAML hasta obtener su modelo de datos subyacente —asignaciones (mappings), secuencias y escalares con tipo— y vuelve a generar esos mismos datos usando la sintaxis de tablas de TOML.
Una asignación YAML anidada se convierte en un encabezado [tabla]. Dado lo siguiente:
database:
host: localhost
port: 5432
ssl: true
el conversor produce:
[database]
host = "localhost"
port = 5432
ssl = true
TOML exige este encabezado [tabla] explícito para cualquier objeto anidado; no existe un equivalente a simplemente aumentar la sangría de un bloque. El conversor genera estos encabezados automáticamente a partir del nivel de anidamiento de tu YAML, incluyendo rutas con puntos para estructuras más profundas (una asignación database.replica se convierte en [database.replica]).
Los arreglos de objetos siguen la misma lógica de encabezados explícitos, pero con corchetes dobles. Una secuencia YAML de asignaciones:
servers:
- name: web1
ip: 10.0.0.1
- name: web2
ip: 10.0.0.2
se convierte en la sintaxis de arreglo de tablas de TOML:
[[servers]]
name = "web1"
ip = "10.0.0.1"
[[servers]]
name = "web2"
ip = "10.0.0.2"
Cada encabezado [[servers]] añade un elemento más al arreglo servers; es la única forma en que TOML representa una lista de objetos, mientras que el marcador de secuencia - de YAML maneja listas de cualquier tipo de elemento sin necesidad de distinguir entre objetos y escalares.
Los escalares con tipo se traducen en su mayoría de forma directa. Ambas especificaciones definen cadenas, enteros, números de punto flotante, booleanos y fechas/horas como tipos nativos, no como cadenas de texto, de modo que port: 5432 y enabled: true en YAML se convierten en port = 5432 y enabled = true en TOML sin comillas añadidas: el conversor no tiene que adivinar los tipos, ya que los analizadores de YAML ya los resuelven contra las etiquetas del esquema núcleo de YAML 1.2 antes de que el serializador de TOML los reciba.
La brecha está en todo lo que YAML define y para lo que la especificación de TOML simplemente no tiene un espacio equivalente. YAML tiene un nulo explícito (escrito como ~ o null); el sistema de tipos de TOML no contempla el nulo en absoluto, así que este conversor asigna un valor nulo de YAML a una cadena vacía ("") —el equivalente más cercano que preserva la forma del dato, aunque implica que un campo que originalmente era explícitamente "sin valor" queda indistinguible de un campo que genuinamente es una cadena vacía una vez convertido—. YAML también admite anclas (&nombre) y alias (*nombre) que permiten que un nodo reutilice el contenido de otro por referencia, además de varios documentos separados por --- dentro de un mismo archivo; TOML no tiene mecanismo para ninguna de las dos cosas, ya que un archivo TOML se define como un único documento plano sin referencias cruzadas internas.
Los desarrolladores recurren a esta conversión cuando mueven configuración entre ecosistemas que se estandarizaron en formatos distintos, más que por preferencia personal: se trata de tomar valores de un pipeline de CI o un manifiesto de infraestructura basado en YAML y llevarlos a un Cargo.toml de Rust, a un pyproject.toml de Python consumido por Poetry o Hatch, o al front matter TOML de un generador de sitios estáticos, todos los cuales analizan específicamente TOML y no aceptarán YAML como sustituto.