En este artículo
Que es TOML?
TOML (Tom's Obvious Minimal Language) es un formato de archivo de configuracion disenado para ser facil de leer y escribir. Creado por Tom Preston-Werner (cofundador de GitHub) en 2013, TOML se mapea de forma inequivoca a una tabla hash, lo que facilita su analisis en estructuras de datos en cualquier lenguaje de programacion.
A diferencia de YAML que depende de la indentacion y tiene numerosas trampas, o JSON que carece de comentarios y comas finales, TOML ofrece un punto medio: tipado explicito (cadenas, enteros, flotantes, booleanos, fechas), sintaxis de tabla clara con [corchetes] y soporte para tablas en linea y arrays — todo sin la ambiguedad que afecta a otros formatos de configuracion.
Como funciona la conversion TOML a JSON
La conversion entre TOML y JSON implica analizar el formato fuente en una estructura de datos intermedia y serializarla en el formato de destino. Cada tipo TOML se mapea directamente a un equivalente JSON.
- Pares clave-valor — la sintaxis clave = valor de TOML se mapea a propiedades de objetos JSON; las claves con puntos como server.port se convierten en objetos anidados
- Tablas y arrays — los encabezados [tabla] de TOML se convierten en objetos JSON, y los [[array-de-tablas]] se convierten en arrays de objetos JSON, preservando la estructura jerarquica
- Sistema de tipos — los tipos nativos de TOML (string, integer, float, boolean, datetime) se mapean a primitivas JSON; los valores datetime se serializan como cadenas ISO 8601 ya que JSON no tiene tipo de fecha
Pruébalo gratis — sin registro
Convertir TOML a JSON →Donde se usa TOML
TOML ha sido adoptado por varios ecosistemas importantes como formato de configuracion preferido debido a su claridad y rigurosidad.
- Ecosistema Rust — Cargo.toml es el manifiesto de paquete para cada proyecto Rust, definiendo dependencias, configuraciones de compilacion y metadatos en un formato editable por humanos y analizable por maquinas
- Empaquetado Python — pyproject.toml (PEP 518/621) se ha convertido en el estandar para configuracion de proyectos Python, reemplazando setup.py y setup.cfg con un formato declarativo mas limpio
- Generadores de sitios estaticos — Hugo usa config.toml para la configuracion del sitio, y muchas otras herramientas (Deno, InfluxDB, Netlify) usan TOML para sus archivos de configuracion
Preguntas frecuentes
Cuales son las diferencias entre TOML, YAML y JSON para configuracion?
JSON es el mas simple pero carece de comentarios y comas finales, lo que lo hace incomodo para archivos de configuracion editados por humanos. YAML soporta comentarios y es visualmente limpio pero su sintaxis basada en indentacion lleva a errores sutiles. TOML soporta comentarios, tiene tipado explicito y evita el analisis basado en indentacion.
Cuales son las limitaciones de TOML?
TOML puede volverse verboso para estructuras profundamente anidadas ya que cada nivel de anidamiento requiere su propio encabezado [tabla.subtabla]. Tampoco tiene tipo null (a diferencia de JSON y YAML), lo que significa que los valores ausentes deben manejarse omitiendo la clave por completo.
Como maneja TOML las fechas y horas?
TOML tiene soporte nativo para tipos de fecha y hora segun RFC 3339: datetime con desplazamiento (2024-01-15T10:30:00Z), datetime local (2024-01-15T10:30:00), fecha local (2024-01-15) y hora local (10:30:00). Al convertir a JSON, estos se serializan como cadenas ISO 8601 ya que JSON no tiene tipo de fecha nativo.