Format, validasi, dan konversi TOML โ JSON di browser. Tidak ada data yang dikirim ke server mana pun.
| Tipe | Contoh | Catatan |
|---|---|---|
| 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 |
| Fitur | 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) adalah format file konfigurasi yang dirancang mudah dibaca karena semantiknya yang jelas. Ia memetakan secara tidak ambigu ke tabel hash dan dirancang sebagai alternatif YAML dan JSON untuk file konfigurasi. TOML digunakan oleh Cargo Rust, Poetry Python, dan banyak alat lainnya.
Berbeda dengan JSON, TOML mendukung komentar, string multi-baris, dan memiliki tipe tanggal/waktu native. Berbeda dengan YAML, TOML memiliki sintaks yang eksplisit dan tidak ambigu โ tidak ada koersi tipe implisit yang mengejutkan atau jebakan indentasi. TOML umumnya lebih disukai untuk file konfigurasi sementara JSON disukai untuk API pertukaran data.
Tabel TOML didefinisikan dengan sintaks [table.name] dan dipetakan ke objek bersarang. Array tabel menggunakan [[array.name]] (tanda kurung ganda) dan membuat array objek. Tabel inline menggunakan sintaks {key = value} untuk representasi kompak. Tabel mendukung penyarangan arbitrari untuk konfigurasi hierarkis.
TOML mendukung: String (dasar dan literal/raw), Integer (desimal, hex 0x, oktal 0o, biner 0b), Float (termasuk inf dan nan), Boolean (true/false), Offset Date-Time (RFC 3339), Local Date-Time, Local Date, Local Time, Array (tipe campuran diizinkan), dan Table/Inline Table.