TOML (acronimo di Tom's Obvious, Minimal Language) è un formato di file testuale progettato appositamente per la definizione di file di configurazione. Ideato da Tom Preston-Werner nel 2013, si pone l'obiettivo di essere facile da leggere e da scrivere per gli esseri umani, mantenendo al contempo una sintassi priva di ambiguità che ne faciliti il parsing da parte dei calcolatori.
Sintassi e tipi di dato TOML è ispirato alla struttura dei File INI, ma possiede una specifica formale rigorosa e supporta in modo nativo tipi di dato complessi. La sintassi si basa sull'assegnazione di coppie chiave-valore raggruppate in sezioni denominate "tabelle" (tables).
I tipi di dato supportati includono: stringhe (anche multilinea); numeri interi e in virgola mobile; valori booleani (true o false); date e orari (formato ISO 8601); array e tabelle (anche in linea).
Esempio Esempio di configurazione per un'applicazione ipotetica:
# Parametri generali dell'applicazione app_name = "SistemaMonitoraggio" versione = 2.1
[server] ip = "192.168.1.50" porte = [ 8080, 8081 ] attivo = true
[utente.profilo] nome = "Marco" scadenza = 2026-12-31T23:59:59Z
Utilizzo Il formato dispone di un ampio supporto in svariati linguaggi di programmazione: Cargo, il sistema di gestione dei pacchetti di Rust, utilizza esclusivamente file TOML (Cargo.toml) per la gestione del progetto. Dalla versione 3.11, la libreria standard di Python include il modulo tomllib per il parsing dei file TOML.
Confronto con altri formati Le differenze rispetto ad altri formati di serializzazione sono documentate nelle specifiche stesse e in analisi tecniche di settore: Rispetto a JSON: TOML supporta i commenti e una sintassi più vicina al linguaggio naturale per la configurazione manuale. Rispetto a YAML: TOML evita le ambiguità legate all'indentazione significativa (off-side rule) e riduce la complessità delle regole di conversione automatica dei tipi. Rispetto ai File INI: TOML introduce una gerarchia definita e standardizzata per le tabelle annidate e i tipi di dato, superando l'assenza di uno standard univoco dei file INI.
Note
Voci correlate File INI JSON YAML
Collegamenti esterni
Categoria:Formati di serializzazione