- SQLite Page Explorer adalah aplikasi GUI kecil yang memungkinkan Anda menjelajahi database SQLite per halaman disk, sesuai cara SQLite melihatnya
- Alih-alih menampilkan level skema seperti tabel, baris, dan SQL yang biasanya ditangani developer, alat ini menampilkan level halaman, sehingga Anda bisa melihat struktur disk nyata dan efisiensi penyimpanan indeks
- Menggunakan redbean, cosmopolitan, dan αcτµαlly pδrταblε εxεcµταblε, aplikasi ini berjalan native di Windows, Linux, MacOS, berbagai BSD, ARM64, dan x64 sebagai satu file executable 6,5MB
- File executable tersebut juga merupakan file zip yang memuat kode Lua, parser format biner database, dan lainnya; jika file database diseret ke executable atau dijalankan dari konsol, aplikasi akan terbuka di tab browser
- File executable dengan metode APE dapat memicu false positive pada deteksi virus browser atau sistem operasi, dan untuk database besar di atas 500MB, pemuatan tampilan teratas mungkin lambat
GUI untuk melihat langsung halaman SQLite
- SQLite Page Explorer adalah aplikasi GUI kecil untuk menjelajahi database SQLite “page by page”
- SQLite dan sebagian besar database biasanya menyimpan data dalam halaman blok disk berukuran 4KB, sebuah struktur untuk mempercepat baca dan tulis
- Pekerjaan developer pada umumnya dilakukan pada level skema seperti tabel, baris, dan SQL, tetapi alat ini memungkinkan Anda melihat level halaman sebagaimana dilihat SQLite
Hal yang bisa dilihat dengan eksplorasi level halaman
- Anda bisa memeriksa seperti apa indeks sebenarnya di disk
- Indeks pada dasarnya disimpan seperti tabel kecil yang terpisah
- Anda bisa mempelajari cara menyimpan data secara lebih ringkas, yang dapat berhubungan dengan membuat kueri dan aplikasi lebih cepat
- Membantu menemukan masalah dan inefisiensi yang mungkin tidak terlihat pada level skema
- Memberi intuisi tentang B-Tree, struktur data penting yang menjadi dasar filesystem dan database
Berjalan di mana saja sebagai satu file executable
- Didistribusikan sebagai satu file executable 6,5MB menggunakan redbean, cosmopolitan, dan αcτµαlly pδrταblε εxεcµταblε
- Berjalan di Windows, Linux, MacOS, dan berbagai BSD, serta mendukung ARM64 dan x64
- File executable ini juga merupakan file zip yang berisi kode Lua untuk menjalankan aplikasi, parser format biner database, dan lainnya
Cara instalasi dan menjalankan
- Unduh
sqlite-page-explorer.comdari halaman rilis - Di sistem keluarga Unix, jalankan
chmod +x - Seret file database ke executable, atau jalankan dari konsol seperti berikut
sqlite-page-explorer.com mySqliteDatabase.db
- Aplikasi akan terbuka di tab browser
- Setelah selesai digunakan, tekan Ctrl-C dua kali di konsol
Catatan dan cara pengembangan
- File executable APE dapat memicu false positive pada deteksi virus browser atau sistem operasi
- Proyek seperti llamafile juga menggunakan teknik biner polyglot yang sama
- Tetap perlu berhati-hati seperti biasa terhadap file yang diunduh dari internet
- Jika memasukkan database besar di atas 500MB, pemuatan tampilan teratas yang membaca semua halaman mungkin lambat
- Build dilakukan dengan memasukkan isi
files/ke dalamredbean-3.0.0-cosmos.comsebagai zip- Build juga bisa dilakukan dengan skrip Python 3.6+
zipitup.pyyang disertakan
- Build juga bisa dilakukan dengan skrip Python 3.6+
- Saat pengembangan, aplikasi bisa disajikan dari subdirektori
filesdenganredbean-3.0.0-cosmos.com -D files, sehingga tidak perlu membuat ulang zip setiap kali - Proyek ini merupakan bagian dari eksperimen redbean dan penggunaan Lua pertama, sehingga kodenya masih punya ruang untuk dirapikan
- Sistem template dapat membantu mengurangi penggabungan string dan pemanggilan
Write() - Ada ide perbaikan seperti otomatis menutup konsol saat tab terakhir ditutup, atau berhenti di sekitar 10.000 halaman pada database raksasa sebelum meminta konfirmasi pengguna
- PR diterima dengan senang hati
- Sistem template dapat membantu mengurangi penggabungan string dan pemanggilan
1 komentar
Komentar Hacker News
Keren sekali. Saya mengunggah cuplikan layar GIF animasi di sini: https://simonwillison.net/2025/Feb/6/sqlite-page-explorer/
Keren! Ternyata cukup mudah untuk mulai menulis sendiri kode yang mem-parsing file SQLite sambil membuka dokumentasi format file SQLite di samping
Sangat direkomendasikan karena mirip dengan cara kerja proyek ini, dan karena alasan-alasan yang tertulis di bagian “Why?” pada README
https://www.sqlite.org/fileformat.html
Ada juga sedikit alat visualisasi, tetapi fiturnya jauh lebih sedikit dibanding perangkat lunak pada postingan utama: https://www.nayuki.io/page/sqlite-database-file-visualizatio...
Benar-benar mengesankan! Sebagai orang yang pernah menyentuh struktur internal SQLite sebelumnya, saya tahu pekerjaan dan eksperimen seperti ini sama sekali bukan hal kecil
Terkait ini, saya baru-baru ini melihat sqlite-repr [1], dibuat dengan Dioxus, dan menunjukkan pendekatan yang menarik untuk visualisasi SQLite
[1] https://torymur.github.io/sqlite-repr/
Saya pernah melakukan hal seperti ini saat membuat alat keamanan lebih dari 10 tahun lalu. Melakukannya membuat saya semakin menghargai engine yang dirancang dengan sangat rapi
Saya selalu berpikir penjelajah seperti ini atau bahkan sekadar pustaka dasarnya akan menyenangkan, jadi saya senang melihat ini dirilis dengan lisensi MIT
Terlihat keren, dibuat dengan baik
Akan bagus kalau ada legenda warna di layar pertama. Awalnya saya tidak tahu arti warna-warna itu
Sepertinya agak kewalahan pada basis data besar. Saya mencoba yang 3.6GB dengan 942719 halaman, dan mungkin akan lebih baik jika halaman-halamannya ditampilkan bertahap
title, jadi sistem warnanya bisa diketahui, tetapi memang tidak terlalu jelasMemang benar basis data besar jadi lambat. Halamannya ditelusuri dari “sisi server”, jadi kalau ada ratusan ribu tentu butuh waktu
Idealnya akan bagus jika ada API rentang halaman untuk scroll real-time, tetapi pendekatan sederhana seperti “lihat 10 ribu halaman berikutnya” juga tampaknya memungkinkan
Proyek yang bagus, tetapi saat menjalankan executable muncul error
"failed to run lua code: /index.lua:3: module 'utils' not found:"Sebagai orang yang tidak cukup disciplined untuk menuntaskan kuliah atau kelas sampai akhir, ini sangat bagus untuk memahami secara visual apa yang terjadi di dalam dan bagaimana menata data dengan lebih efisien
Baru-baru ini saya menulis artikel yang menjelaskan format file SQLite, dan saya juga menambahkan diagram yang mungkin membantu. Mungkin berguna
https://blog.jabid.in/2024/11/24/sqlite.html
Di source SQLite ada alat CLI bernama showdb yang bagus untuk mengintip isi file basis data
Keren. Saya sedang belajar basis data dan ini sangat membantu