El lenguaje TOML ( Tom's Obvious, Minimal Language , originalmente Tom's Own Markup Language ) [ 2 ] es un formato de archivo para archivos de configuración . [ 3 ] Está diseñado para ser fácil de leer y escribir gracias a su minimalismo (a diferencia del más complejo YAML ) y al uso de una sintaxis legible para humanos. El proyecto estandariza la implementación del omnipresente formato de archivo INI (al que ha reemplazado en gran medida ), eliminando la ambigüedad de su interpretación. Originalmente creado por Tom Preston-Werner , la especificación TOML es de código abierto . TOML se utiliza en varios proyectos de software [ 4 ] [ 5 ] [ 6 ] y está implementado en todos los lenguajes de programación populares. [ 7 ]
Sintaxis
Entre otras estructuras, la sintaxis de TOML consiste principalmente en pares clave-valor, nombres de secciones entre corchetes y comentarios delimitados por una coma inicial #. La sintaxis de TOML es un superconjunto del formato INI. A diferencia del formato INI, que comprende múltiples variantes en competencia debido a analizadores sintácticos ad hoc, TOML tiene una sintaxis formalmente acordada.
TOML admite los siguientes tipos de datos: cadena, entero, flotante, booleano, fecha y hora, matriz y tabla.
Ejemplo
# Este es un documento TOML.Título = "Ejemplo TOML"[base de datos]servidor = "192.168.1.1"puertos = [ 8000 , 8001 , 8002 ]connection_max = 5000habilitado = verdadero# Se permiten saltos de línea dentro de matrices.anfitriones = ["alfa" ,"omega"][servidores]# Se permite la sangría (tabulaciones y/o espacios), pero no es obligatoria.[servidores.alfa]IP = "10.0.0.1"dc = "eqdc10"[servidores.beta]IP = "10.0.0.2"dc = "eqdc10"Usos notables
TOML se utiliza en diversos entornos, como por ejemplo:
- Configuración de Jekyll (un generador de sitios estáticos ) (aunque también se admite
_config.tomlla configuración mediante YAML ). - Configuración de Hugo (un generador de sitios estáticos ) (aunque también se admite
hugo.tomlla configuración mediante JSON y YAML ). - Manifiestos de paquetes de Python 3
pyproject.toml[ 8 ] - Manifiestos de paquetes Rust
Cargo.toml[ 4 ] - Configuración del proyecto Julia
Project.tomly manifiestos de paquetesManifest.toml[ 9 ] - Manifiestos de complementos de Blender
blender_manifest.toml[ 10 ] - Catálogos de versiones de Gradle
libs.versions.toml[ 11 ] - Configuraciones de Taplo
.taplo.tomlytaplo.toml[ 12 ] - Configuraciones más bonitas
.prettierrc.toml[ 13 ]
Véase también
Referencias
- ↑ "TOML v1.1.0" .
- ↑ Preston-Werner, Tom (24 de febrero de 2013). "Commit inicial · toml-lang/toml@84db252" . GitHub . Archivado del original el 15 de junio de 2024. Recuperado el 15 de junio de 2024 .
- ↑ Preston-Werner, Tom ; Gedam, Pradyun (11 de enero de 2021). "TOML: English v1.0.0" . Archivado del original el 29 de enero de 2024. Recuperado el 27 de enero de 2024 .
- 1 2 "El formato del manifiesto - El libro de carga" . doc.rust-lang.org . Archivado del original el 26 de agosto de 2019. Recuperado el 8 de julio de 2023 .
- ↑ DeVault, Drew (28 de julio de 2021). "Mi lista de deseos para el próximo YAML" . Archivado del original el 9 de marzo de 2024. Recuperado el 28 de julio de 2021. YAML es universalmente utilizado y universalmente criticado .
Tiene muchos problemas, pero también es tan útil para resolver tareas específicas que es difícil de reemplazar. Algunos recién llegados (como TOML) han logrado hacerse con una parte de su cuota de mercado, pero sigue vigente en aquellos lugares donde esas alternativas muestran sus debilidades.
- ↑ " TOML: El lenguaje mínimo obvio de Tom" . toml.io. Archivado del original el 8 de agosto de 2022. Consultado el 8 de agosto de 2022 .
- ↑ "Implementaciones de Toml" . GitHub . Consultado el 2 de junio de 2026 .
- ↑ "PEP 518 – Especificación de los requisitos mínimos del sistema de compilación para proyectos Python | peps.python.org" . Propuestas de mejora de Python (PEP) . Consultado el 4 de febrero de 2025 .
- ↑ "10. Project.toml y Manifest.toml · Pkg.jl" . pkgdocs.julialang.org . Archivado del original el 8 de julio de 2023. Consultado el 8 de julio de 2023 .
- ↑ Equipo de documentación de Blender (17 de agosto de 2025). "Cómo crear extensiones ; manifiesto" . Consultado el 17 de agosto de 2025 .
- ↑ Gradle, Inc. (2025). "Catálogos de versiones" . Consultado el 17 de agosto de 2025 .
- ↑ Ferenc Tamás (16 de junio de 2022). "Archivo de configuración" . Consultado el 17 de agosto de 2025 .
- ↑ "Archivo de configuración" . Consultado el 17 de agosto de 2025 .
- formatos de archivos informáticos
- Lenguajes de marcado ligeros
- Lenguajes de marcado