Formatta, valida e converti TOML ↔ JSON nel browser. Nessun dato viene inviato ad alcun server.
| Tipo | Esempio | Note |
|---|---|---|
| String (basic) | name = "Alice" | Supports \n, \t, \uXXXX escapes |
| String (literal) | path = 'C:\Users\Alice' | No escape processing — use for regex, paths |
| Multi-line string | desc = \"\"\" Line 1 Line 2\"\"\"`` | Opening newline trimmed |
| Integer | count = 42 hex = 0xFF bin = 0b1010 | Underscores allowed: 1_000_000 |
| Float | pi = 3.14159 sci = 5e22 inf = inf | nan also valid |
| Boolean | debug = true verbose = false | Always lowercase |
| Offset Date-Time | created = 1979-05-27T07:32:00Z | RFC 3339 / ISO 8601 |
| Local Date | date = 2024-01-15 | No time, no timezone |
| Array | tags = ["rust", "config"] | Mixed types allowed; multi-line OK |
| Inline Table | point = {x = 1, y = 2} | Must be on a single line |
| Table | [server] host = 'localhost' | Maps to nested object |
| Array of Tables | [[users]] name = 'Alice' | Creates an array of objects |
| Funzionalità | TOML | JSON | YAML |
|---|---|---|---|
| Comments | ✓ | ✗ | ✓ |
| Trailing commas | N/A | ✗ | N/A |
| Native dates | ✓ | ✗ | ✓ |
| Multi-line strings | ✓ | ✗ (escape \n) | ✓ |
| Implicit type coercion | ✗ | ✗ | ✓ (risky) |
| Human readability | High | Medium | High |
| Machine readability | High | High | Medium |
| Use case | Config files | APIs / data exchange | Config / automation |
TOML (Tom's Obvious, Minimal Language) è un formato di file di configurazione progettato per essere facile da leggere grazie alla semantica ovvia. Mappa in modo inequivocabile a una tabella hash ed è progettato come alternativa a YAML e JSON per i file di configurazione. TOML è usato da Cargo di Rust, Poetry di Python e molti altri strumenti.
A differenza di JSON, TOML supporta commenti, stringhe multiriga e ha tipi di data/ora nativi. A differenza di YAML, TOML ha una sintassi esplicita e non ambigua — nessuna coercizione di tipo implicita sorprendente o trappole di indentazione. TOML è generalmente preferito per i file di configurazione mentre JSON è preferito per le API di scambio dati.
Una tabella TOML è definita con la sintassi [table.name] e mappa a un oggetto annidato. Un array di tabelle usa [[array.name]] (doppie parentesi) e crea un array di oggetti. Le tabelle inline usano la sintassi {key = value} per rappresentazioni compatte. Le tabelle supportano l'annidamento arbitrario per la configurazione gerarchica.
TOML supporta: String (base e letterale/raw), Integer (decimale, hex 0x, ottale 0o, binario 0b), Float (inclusi inf e nan), Boolean (true/false), Offset Date-Time (RFC 3339), Local Date-Time, Local Date, Local Time, Array (tipi misti consentiti) e Table/Inline Table.