Alat TOML ToolDeck memungkinkan Anda memformat, memvalidasi, dan mengonversi file konfigurasi TOML langsung di browser — tanpa instalasi, tanpa akun, tanpa data yang diunggah ke server mana pun. TOML Formatter mengurai input TOML Anda dan menghasilkan ulang dengan indentasi konsisten, pengurutan kunci yang dinormalisasi, dan pesan kesalahan validasi yang menunjukkan masalah sintaks secara tepat. TOML to JSON Converter mengubah dokumen TOML menjadi padanan JSON-nya, mempertahankan tipe data termasuk datetime, inline table, dan array of table. Kedua alat berjalan sepenuhnya di sisi klien, sehingga file konfigurasi Anda — yang sering berisi kredensial database, endpoint API, dan rahasia deployment — tetap berada di mesin Anda. Jika Anda membutuhkan arah sebaliknya, JSON to TOML Converter di kategori JSON menangani konversi tersebut.
Apa Itu Alat TOML?
TOML (Tom's Obvious, Minimal Language) adalah format file konfigurasi yang dibangun di atas sintaks yang eksplisit dan tidak ambigu. Dibuat oleh Tom Preston-Werner, salah satu pendiri GitHub, TOML pertama kali dirilis pada 2013 dan mencapai spesifikasi v1.0 pada Januari 2021. Format ini memetakan secara tegas ke tabel hash: setiap file TOML mendefinisikan pohon pasangan kunci-nilai yang diorganisasi ke dalam tabel (bagian yang ditandai dengan [tanda kurung]). Tidak seperti YAML, TOML tidak bergantung pada indentasi untuk struktur, yang menghilangkan seluruh kelas bug penguraian terkait spasi kosong. Tidak seperti JSON, TOML mendukung komentar, tipe tanggal/waktu asli, dan string multi-baris — fitur yang dibutuhkan file konfigurasi tetapi tidak pernah dirancang untuk disediakan oleh JSON.
Alat TOML mengotomatiskan pekerjaan mekanis dalam membaca, memvalidasi, dan mengonversi file TOML. Alat pemformatan menormalisasi indentasi dan pengurutan kunci sehingga file konfigurasi tetap mudah dibaca oleh seluruh tim, bahkan ketika beberapa kontributor mengedit file yang sama. Alat konversi menerjemahkan antara TOML dan JSON, yang berguna ketika suatu library atau API mengharapkan input JSON tetapi sumber data Anda adalah konfigurasi TOML. Validasi menangkap kesalahan sintaks — tanda kurung penutup yang hilang, kunci duplikat, atau literal datetime yang tidak valid — sebelum menyebabkan kegagalan saat aplikasi dijalankan.
Tugas-tugas ini sering muncul dalam proyek Rust (di mana Cargo.toml adalah manifes paket), packaging Python (pyproject.toml menggantikan setup.py sebagai konfigurasi build standar dalam PEP 518 dan PEP 621), situs statis Hugo (yang menggunakan TOML untuk konfigurasi situs secara default), dan setiap pengaturan infrastruktur yang menyimpan konfigurasi dalam file TOML. Spesifikasi TOML dikelola di toml.io, dan parser tersedia untuk setiap bahasa pemrograman utama.
Mengapa Menggunakan Alat TOML di ToolDeck?
Alat TOML ToolDeck mengurai dan memproses semuanya di dalam tab browser Anda menggunakan JavaScript. Tidak ada data konfigurasi yang dikirim ke server, tidak ada akun yang diperlukan, dan alat bekerja secara offline setelah pemuatan halaman awal.
🔒Privat secara default
File konfigurasi sering berisi nilai sensitif — URL database, kunci API, target deployment. ToolDeck memproses TOML sepenuhnya di sisi klien, sehingga tidak ada yang meninggalkan browser Anda. Aman untuk proyek proprietary dan konfigurasi infrastruktur internal.
⚡Umpan balik instan
Tempelkan TOML, lihat output yang diformat atau JSON secara langsung. Kesalahan sintaks dilaporkan dengan nomor baris dan deskripsi. Tidak perlu menunggu alat CLI untuk dipasang atau langkah build selesai.
🔄Konversi tipe yang akurat
Konverter TOML ke JSON mempertahankan tipe khusus TOML seperti offset datetime, tanggal lokal, dan waktu lokal sebagai string ISO 8601. Presisi bilangan bulat dan float dipertahankan. Array of table dipetakan dengan benar ke array objek JSON.
🌐Tidak perlu instalasi
Berfungsi di perangkat apa pun dengan browser modern. Berguna saat Anda meninjau pull request di mesin tanpa lingkungan pengembangan biasa Anda, atau saat Anda perlu memvalidasi file TOML milik rekan kerja dengan cepat.
Kasus Penggunaan Alat TOML
Pemformatan, validasi, dan konversi TOML muncul di berbagai peran dan jenis proyek. Developer Rust bekerja dengan Cargo.toml setiap hari. Developer Python mengonfigurasi build dan alat melalui pyproject.toml. Engineer DevOps mengelola konfigurasi aplikasi yang dikirim sebagai TOML. Tugas-tugas di bawah ini menunjukkan di mana alat TOML berbasis browser menghemat waktu dibandingkan menulis skrip sekali pakai atau memasang alat CLI.
Pembersihan Cargo.toml
Setelah menggabungkan beberapa penambahan dependensi, Cargo.toml proyek Rust memiliki pemformatan yang tidak konsisten. Jalankan melalui
TOML Formatter untuk menormalisasi indentasi dan urutan kunci sebelum melakukan commit.
pyproject.toml ke JSON
Pipeline CI membutuhkan metadata build dalam format JSON, tetapi sumber datanya adalah pyproject.toml. Gunakan
TOML to JSON Converter untuk menghasilkan representasi JSON dan verifikasi pemetaannya sebelum membuat skrip konversi ke pipeline Anda.
Migrasi konfigurasi
Memindahkan aplikasi dari konfigurasi berbasis JSON ke TOML (atau sebaliknya).
TOML to JSON Converter memungkinkan Anda membandingkan dua representasi secara berdampingan untuk memastikan tipe data, struktur bersarang, dan semantik array dipertahankan.
Debugging sintaks
File konfigurasi TOML gagal diurai saat aplikasi dijalankan dengan pesan kesalahan yang tidak jelas. Tempelkan ke
TOML Formatter untuk mendapatkan nomor baris dan kolom spesifik untuk kesalahan sintaks, beserta deskripsi apa yang diharapkan oleh parser.
Pembuatan dokumentasi
Menulis dokumentasi yang menyertakan contoh konfigurasi dalam format TOML dan JSON. Konversi contoh TOML kanonik melalui
TOML to JSON Converter agar kedua versi tetap sinkron tanpa transkripsi manual.
Mempelajari sintaks TOML
Developer yang baru mengenal TOML dapat bereksperimen dengan format ini dengan menulis TOML di
TOML Formatter, melihat kesalahan validasi secara langsung, dan membandingkan strukturnya dengan output yang diformat. Ini lebih cepat daripada membaca spesifikasi saja.
Referensi Tipe Data TOML
TOML v1.0 mendefinisikan tipe data berikut. Setiap tipe dipetakan ke representasi tertentu saat dikonversi ke JSON. Tabel di bawah mencakup sintaks, contoh, dan perilaku konversi untuk setiap tipe TOML.
| Tipe | Sintaks | Contoh | Pemetaan JSON |
|---|
| String | "..." atau '...' | name = "TOML" | String JSON. String dasar mendukung urutan escape (\n, \t, \u). String literal ('...') memperlakukan backslash sebagai karakter literal. |
| Integer | digit, 0x, 0o, 0b | port = 8080 | Angka JSON. Mendukung heksadesimal (0xDEAD), oktal (0o755), biner (0b1010), dan pemisah garis bawah (1_000). |
| Float | digit dengan . atau e | pi = 3.14159 | Angka JSON. Mendukung inf, -inf, dan nan (dipetakan ke null atau string dalam JSON, karena JSON tidak memiliki NaN). |
| Boolean | true / false | enabled = true | Boolean JSON. Hanya true dan false huruf kecil yang valid. |
| Offset Date-Time | RFC 3339 | 2024-01-15T09:30:00Z | String JSON (ISO 8601). Menyertakan offset zona waktu. Tidak ada tipe datetime asli di JSON. |
| Local Date-Time | date T time | 2024-01-15T09:30:00 | String JSON. Tidak ada informasi zona waktu. Berguna untuk waktu jam dinding. |
| Local Date | YYYY-MM-DD | 2024-01-15 | String JSON. Tanggal tanpa komponen waktu. |
| Local Time | HH:MM:SS | 09:30:00 | String JSON. Waktu tanpa tanggal atau zona waktu. |
| Array | [value, ...] | ports = [8080, 8443] | Array JSON. Array TOML dapat bersifat heterogen di TOML v1.0 tetapi harus homogen di v0.5. |
| Table | tomlCategoryContent.r10Syntax | [database] | Objek JSON. Tabel standar menggunakan [tanda kurung]. Inline table menggunakan kurung kurawal pada satu baris. |
Spesifikasi TOML v1.0.0 (toml.io) adalah versi stabil saat ini. Array of table menggunakan [[tanda kurung ganda]] untuk mendefinisikan entri tabel berulang, dipetakan ke array objek JSON.
Cara Memilih Alat TOML yang Tepat
ToolDeck memiliki tiga alat yang bekerja dengan file TOML. Dua ada di kategori TOML, dan satu ada di kategori JSON untuk arah konversi sebaliknya. Pilih alat yang sesuai dengan tugas Anda.
- 1
Jika Anda perlu mengatur ulang indentasi file TOML, menormalisasi pengurutan kunci, atau memvalidasi sintaks TOML dengan pelaporan kesalahan di tingkat baris → TOML Formatter - 2
Jika Anda perlu mengonversi file konfigurasi TOML ke JSON untuk digunakan di API, skrip, atau alat yang mengharapkan input JSON → TOML to JSON Converter - 3
Jika Anda perlu mengonversi dokumen JSON ke format TOML untuk proyek yang menggunakan TOML sebagai standar konfigurasi → JSON to TOML Converter
Untuk pekerjaan TOML sehari-hari, TOML Formatter menangani pemformatan dan validasi dalam satu langkah — tempelkan TOML Anda, dan alat akan menghasilkan output bersih atau memberi tahu Anda tepatnya di mana kesalahan sintaksnya. Saat Anda perlu menjembatani TOML dan JSON, TOML to JSON Converter mempertahankan semua tipe data TOML termasuk datetime dan tabel bersarang. Untuk arah sebaliknya (JSON ke TOML), gunakan JSON to TOML Converter di kategori JSON. Jika Anda men-debug konfigurasi yang gagal diurai, mulailah dengan TOML Formatter: pesan kesalahannya menyertakan nomor baris dan deskripsi token yang diharapkan yang lebih spesifik dari yang dilaporkan kebanyakan parser TOML di tingkat aplikasi.
Pertanyaan yang Sering Diajukan
Apa perbedaan antara TOML dan YAML?
TOML menggunakan sintaks tanda kurung eksplisit untuk tabel dan tidak bergantung pada indentasi untuk struktur. YAML menggunakan indentasi untuk mendefinisikan hierarki, yang membuatnya sensitif terhadap kesalahan spasi kosong — satu spasi yang salah tempat dapat mengubah struktur yang diurai sepenuhnya. TOML juga memiliki tipe tanggal/waktu asli dan melarang kunci duplikat, sementara YAML secara diam-diam menggunakan nilai terakhir ketika kunci muncul dua kali. TOML umumnya lebih disukai untuk konfigurasi aplikasi, sementara YAML lebih umum dalam manifes Kubernetes dan definisi pipeline CI/CD di mana dukungan multi-dokumen dan anchor/alias-nya berguna.
Apa perbedaan antara TOML dan JSON?
JSON adalah format pertukaran data yang dirancang untuk komunikasi mesin-ke-mesin. TOML adalah format konfigurasi yang dirancang untuk dibaca dan diedit oleh manusia. TOML mendukung komentar (baris yang dimulai dengan #), tipe datetime asli, string multi-baris, dan tabel yang mengurangi kedalaman penyarangan. JSON tidak mendukung komentar, tidak memiliki tipe tanggal, dan memerlukan penyarangan eksplisit dengan kurung kurawal. JSON adalah pilihan tepat untuk payload API dan penyimpanan data; TOML adalah pilihan tepat untuk file konfigurasi yang diedit manusia secara langsung.
Bisakah TOML merepresentasikan semua struktur data JSON?
TOML dapat merepresentasikan sebagian besar struktur JSON, tetapi ada kasus tepi. TOML tidak mendukung nilai null — tidak ada padanan TOML untuk null JSON. Kunci TOML harus berupa string, yang sesuai dengan kunci objek JSON. Array TOML dibatasi pada tipe homogen di v0.5, tetapi TOML v1.0 mengizinkan array bertipe campuran. Objek JSON yang sangat bersarang dapat menjadi verbose dalam TOML karena setiap tingkat penyarangan memerlukan header tabel tersendiri.
Proyek mana yang menggunakan TOML untuk konfigurasi?
Sistem build Cargo milik Rust menggunakan Cargo.toml sebagai manifes paket. Python mengadopsi pyproject.toml sebagai file konfigurasi build standar melalui PEP 518 (2016) dan PEP 621 (2020). Hugo, generator situs statis, menggunakan TOML untuk konfigurasi situs secara default. InfluxDB menggunakan TOML untuk konfigurasi servernya. Sistem modul Go mempertimbangkan TOML tetapi memilih formatnya sendiri; namun, banyak proyek Go masih menggunakan TOML untuk konfigurasi tingkat aplikasi melalui library seperti BurntSushi/toml dan pelletier/go-toml.
Bagaimana TOML menangani komentar?
TOML mendukung komentar satu baris penuh dan komentar di akhir baris menggunakan karakter #. Semua yang ada dari # hingga akhir baris diabaikan oleh parser. Komentar tidak dapat muncul di dalam string dasar multi-baris atau string literal multi-baris. Saat mengonversi TOML ke JSON, komentar dibuang karena JSON tidak memiliki sintaks komentar. Ini berarti proses bolak-balik dari TOML ke JSON dan kembali ke TOML akan kehilangan semua komentar dari file asli.
Apa itu array of table dalam TOML?
Array of table menggunakan sintaks [[tanda kurung ganda]] untuk mendefinisikan entri berulang dari struktur tabel yang sama. Misalnya, [[servers]] yang muncul dua kali membuat array dengan dua objek server. Dalam JSON, ini dipetakan ke array objek. Array of table umumnya digunakan untuk daftar dependensi, definisi server, atau konfigurasi plugin di mana setiap entri memiliki kumpulan kunci yang sama.
Apakah TOML sensitif terhadap spasi kosong?
TOML tidak sensitif terhadap indentasi. Indentasi bersifat kosmetik semata dan tidak mempengaruhi penguraian. Namun, TOML memerlukan baris baru untuk memisahkan pasangan kunci-nilai — Anda tidak dapat meletakkan dua pasangan kunci-nilai pada baris yang sama (kecuali di dalam inline table). Inline table harus muat dalam satu baris dan tidak boleh mengandung baris baru. Desain ini menghindari bug berbasis indentasi yang umum terjadi pada file YAML.
Apa yang terjadi pada nilai datetime TOML saat dikonversi ke JSON?
JSON tidak memiliki tipe datetime asli, sehingga datetime TOML dikonversi ke string ISO 8601. Offset datetime (seperti 2024-01-15T09:30:00Z) mempertahankan offset zona waktunya dalam representasi string. Datetime lokal, tanggal lokal, dan waktu lokal masing-masing diserialisasi sebagai string tanpa informasi zona waktu. Konversi ini tidak kehilangan informasi dalam arti bahwa nilai asli dapat diurai kembali dari string, tetapi konsumen JSON harus mengetahui bahwa string-string ini adalah tanggal, bukan teks sembarang.