Analizador TOML

TOML (Lenguaje Mínimo Obvio de Tom) es un formato de archivo de configuración mínimo diseñado para ser fácil de leer y escribir. Es el formato de configuración estándar para Rust (Cargo.toml), empaquetado de Python (pyproject.toml) y muchas otras herramientas de desarrollo modernas.

Especificaciones

Casos de uso comunes

  • Analizar Cargo.toml para dependencias y metadatos de proyectos Rust
  • Leer pyproject.toml para configuración de compilación de Python (PEP 518/621)
  • Procesar configuraciones de generadores de sitios estáticos Hugo, Zola u otros
  • Editar archivos de configuración de Deno (deno.toml)
  • Validar configuración antes del despliegue

Funcionalidades

  • Soporte completo de la especificación TOML v1.0.0
  • Analizar tablas, arrays de tablas y estructuras anidadas
  • Manejar tablas y arrays en línea
  • Soporte para valores de fecha/hora
  • Convertir a JSON, YAML o XML
  • Validación de sintaxis con mensajes de error

Ejemplos

Cargo.toml de Rust

Pruébalo →

Un manifiesto Cargo que define metadatos del paquete y dependencias.

[package]
name = "my-project"
version = "0.1.0"
edition = "2021"

[dependencies]
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }

pyproject.toml de Python

Pruébalo →

Una configuración de proyecto Python con sistema de compilación y metadatos.

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "my-package"
version = "1.0.0"
dependencies = ["requests>=2.28"]

Consejos

  • TOML usa = para pares clave-valor, a diferencia de los dos puntos de YAML.
  • Las cadenas deben estar entrecomilladas. Use """ para cadenas multilínea.
  • Las tablas ([tabla]) crean estructuras anidadas.
  • Los arrays de tablas usan la sintaxis [[array]].

Comprender Analizador TOML

TOML (Lenguaje Mínimo Obvio de Tom) es un formato de archivo de configuración diseñado para ser inequívoco y fácil de leer. Creado por Tom Preston-Werner (cofundador de GitHub), TOML se mapea limpiamente a una tabla hash y es intencionalmente más simple que YAML mientras es más expresivo que los archivos INI. La versión 1.0.0 fue finalizada en 2021.

El diseño de TOML se centra en la claridad. Las claves y valores usan una sintaxis simple "clave = valor". Las tablas (secciones) se denotan con [corchetes], creando estructuras anidadas sin sensibilidad a la indentación. Los arrays de tablas usan [[dobles corchetes]] para definir secciones repetidas. TOML soporta nativamente cadenas, enteros, flotantes, booleanos, fechas, horas y fecha-horas como tipos de primera clase, eliminando la ambigüedad de análisis común en JSON y YAML.

El ecosistema Rust adoptó TOML tempranamente con Cargo.toml como formato de manifiesto de paquetes. Python siguió con pyproject.toml (PEP 518 y PEP 621), convirtiéndolo en el reemplazo moderno para setup.py y setup.cfg. TOML también aparece en herramientas de Go, Deno (deno.toml), Hugo y muchas otras herramientas de desarrollo que valoran la configuración explícita y legible.

TOML sacrifica flexibilidad por previsibilidad. A diferencia de YAML, solo hay una forma de representar cada estructura de datos. No hay anclas, ni alias, ni sorpresas de coerción de tipos implícita, ni espacios en blanco significativos. La compensación es que las estructuras profundamente anidadas se vuelven verbosas, ya que cada nivel requiere su propio encabezado de tabla.

TOML sobresale para archivos de configuración planos o moderadamente anidados que los humanos editan frecuentemente. Su sintaxis inequívoca evita los problemas de YAML como la coerción de booleanos y los errores de indentación, siendo más legible que JSON para propósitos de configuración. TOML es la elección natural para manifiestos de proyectos (Cargo.toml, pyproject.toml) y configuración de herramientas. YAML sigue siendo más adecuado para estructuras profundamente anidadas como manifiestos de Kubernetes, y JSON es el estándar para intercambio de datos entre sistemas.

La sintaxis de [[dobles corchetes]] crea arrays de tablas, donde cada aparición del encabezado agrega un nuevo elemento al array. Por ejemplo, [[products]] apareciendo tres veces crea un array de tres objetos de producto, cada uno con sus propios pares clave-valor recopilados en orden. TOML también soporta comentarios de una sola línea usando el símbolo de almohadilla (#), que puede aparecer en su propia línea o después de un valor. No hay sintaxis de comentarios multilínea, pero la variante de una línea sigue siendo una ventaja significativa sobre JSON, que no tiene soporte para comentarios en absoluto.

Las tablas y las tablas en línea sirven para diferentes propósitos. Las tablas usan la sintaxis [encabezado] y abarcan múltiples líneas, haciéndolas legibles para secciones con muchas claves. Las tablas en línea usan llaves en una sola línea (clave = { a = 1, b = 2 }) y deben definirse completamente en esa línea — no se pueden extender después de su definición. Como regla general, use tablas estándar para legibilidad cuando una sección tiene más de dos o tres claves.

← Volver a todas las herramientas