TOML (Tom's Obvious Minimal Language) es un formato de configuración pensado para leerse sin ambigüedad y traducirse a una tabla hash. Lo usan pyproject.toml, Cargo.toml y muchas herramientas. Convierta entre formatos con Conversor de TOML a JSON y Conversor de JSON a TOML.
Un ejemplo completo
# A comment
title = "Example"
count = 42
ratio = 3.14
enabled = true
released = 2026-10-28
updated = 2026-10-28T07:32:00Z
tags = ["a", "b", "c"]
products = [
{ name = "Hammer", sku = 738594937 },
{ name = "Nail", sku = 284758393 },
]
[server]
host = "localhost"
port = 8080
[server.tls]
enabled = false
Tipos de valor
| Tipo | Ejemplos |
|---|---|
| Cadena | "básica" (admite escapes), 'literal' (sin escapes), """varias líneas""", '''literal de varias líneas''' |
| Entero | 42, +17, -5, 1_000, 0xFF, 0o17, 0b101 |
| Decimal | 3.14, -0.01, 6.626e-34, +inf, -inf, nan |
| Booleano | true, false (solo en minúsculas) |
| Fecha y hora con desfase | 2026-10-28T07:32:00Z o 2026-10-28T07:32:00+02:00 |
| Fecha y hora local | 2026-10-28T07:32:00 (sin zona) |
| Fecha local | 2026-10-28 |
| Hora local | 07:32:00 |
| Array | [1, 2, 3], puede ocupar varias líneas y tener coma final |
| Tabla en línea | { a = 1, b = 2 } (en una sola línea) |
Tablas, claves con puntos y arrays de tablas
- Un encabezado
[tabla]abre una sección; cada clave que sigue pertenece a esa tabla hasta el siguiente encabezado. [a.b]define la tablabdentro dea. Una misma ruta de claves solo puede definirse una vez.- Las claves con puntos, como
a.b.c = 1, crean tablas anidadas sin encabezados: el resultado es{"a": {"b": {"c": 1}}}. - Un encabezado con el nombre entre corchetes dobles (dos corchetes de apertura, el nombre y dos de cierre, sin espacios) añade una tabla nueva a un array de tablas. Cada encabezado repetido añade un elemento; un array de tablas en línea, como en el ejemplo, hace lo mismo en una sola línea.
Reglas que confunden
- Las claves distinguen mayúsculas de minúsculas y las claves sin comillas solo pueden usar
A-Za-z0-9_-. Ponga comillas a todo lo demás:"mi clave" = 1. - Una clave no puede definirse dos veces, y
[server]después deserver.port = 1es un error. - Los enteros no llevan ceros a la izquierda (
007no es válido) y los decimales necesitan dígitos a ambos lados del punto (.5y5.no son válidos). - No existe
null. Omita la clave, o use una cadena vacía o un valor centinela documentado. - En TOML 1.0 los arrays pueden mezclar tipos, pero la mayoría de las herramientas esperan uno solo.
- Los espacios no importan, a diferencia de YAML, pero un valor debe terminar su línea.