- SQLite Page Explorer एक छोटा GUI एप्लिकेशन है, जिससे SQLite डेटाबेस को SQLite की नजर से डिस्क पेज स्तर पर एक्सप्लोर किया जा सकता है
- यह डेवलपर्स द्वारा आम तौर पर संभाले जाने वाले tables, rows, SQL जैसे schema level के बजाय page level दिखाता है, जिससे indexes की असली disk structure और storage efficiency देखी जा सकती है
- redbean, cosmopolitan, αcτµαlly pδrταblε εxεcµταblε का उपयोग करके यह 6.5MB single executable file के रूप में Windows, Linux, MacOS, कई BSD, ARM64 और x64 पर natively चलता है
- executable file Lua code और database binary format parser आदि को समेटे एक zip file भी है; database file को drag करने या console से चलाने पर app browser tab में खुलता है
- APE-style executable browser या operating system virus detection में false positives पैदा कर सकता है, और 500MB से बड़े databases में top-level view loading धीमी हो सकती है
SQLite पेज को सीधे देखने वाला GUI
- SQLite Page Explorer SQLite database को “page by page” explore करने वाला एक छोटा GUI application है
- SQLite और ज्यादातर databases आम तौर पर 4KB size के disk block pages में data store करते हैं; यह reads और writes को तेज करने के लिए बनाई गई structure है
- आम developer work tables, rows, SQL जैसे schema level पर होता है, लेकिन यह tool SQLite द्वारा देखे जाने वाले page level में झांकने देता है
Page-level exploration से क्या देखा जा सकता है
- देख सकते हैं कि index असल में disk पर कैसा दिखता है
- index मूल रूप से एक अलग छोटी table की तरह store होता है
- data को और compactly store करने के तरीके देखे जा सकते हैं, और यह queries व applications को तेज बनाने से जुड़ सकता है
- schema level पर न दिखने वाली समस्याएं और inefficiencies खोजने में मदद मिलती है
- filesystems और databases की बुनियाद में मौजूद महत्वपूर्ण data structure B-Tree के बारे में intuition मिलती है
Single executable file के रूप में कहीं भी चलाएं
- redbean, cosmopolitan, αcτµαlly pδrταblε εxεcµταblε का उपयोग करके single 6.5MB executable file के रूप में distribute किया गया है
- Windows, Linux, MacOS, कई BSD पर चलता है, और ARM64 व x64 दोनों को support करता है
- executable file app चलाने वाला Lua code, database binary format parser आदि शामिल करने वाली zip file भी है
Installation और running method
- release page से
sqlite-page-explorer.comdownload करें - Unix-like systems पर
chmod +xचलाएं - database file को executable file पर drag करें या console से इस तरह चलाएं
sqlite-page-explorer.com mySqliteDatabase.db
- app browser tab में खुलता है
- उपयोग पूरा होने पर console में Ctrl-C दो बार दबाएं
सावधानियां और development method
- APE executable file browser या operating system virus detection में false positives बना सकती है
- llamafile जैसे projects भी वही polyglot binary technique use करते हैं
- internet से download की गई files के लिए सामान्य सावधानी जरूरी है
- 500MB से बड़े database डालने पर सभी pages पढ़ने वाले top-level view की loading धीमी हो सकती है
- build का तरीका
files/contents कोredbean-3.0.0-cosmos.comमें zip के रूप में डालना है- शामिल
zipitup.pyPython 3.6+ script से भी build किया जा सकता है
- शामिल
- development के दौरान
redbean-3.0.0-cosmos.com -D filesसेfilessubdirectory से app serve किया जा सकता है, ताकि हर बार zip दोबारा न बनानी पड़े - project redbean experiment और Lua के पहले उपयोग का हिस्सा था, और code को और साफ करने की गुंजाइश है
- template system string concatenation और
Write()calls को कम करने में मदद कर सकता है - सुधार के ideas हैं: आखिरी tab बंद होने पर console को automatically exit करना, या huge database में user confirmation से पहले करीब 10,000 pages पर रुकना
- PRs welcome हैं
- template system string concatenation और
1 टिप्पणियां
Hacker News टिप्पणियाँ
वाकई बहुत शानदार है। यहाँ animated GIF screenshot डाली गई है: https://simonwillison.net/2025/Feb/6/sqlite-page-explorer/
बढ़िया! SQLite file format documentation को साथ रखकर SQLite फ़ाइल को parse करने वाला कोड खुद लिखना हैरान करने वाली हद तक आसान है
यह प्रोजेक्ट जिस तरह करता है, उससे मिलता-जुलता है, और README के “Why?” सेक्शन में दिए कारणों की वजह से मैं इसे ज़ोरदार तरीके से recommend करता हूँ
https://www.sqlite.org/fileformat.html
थोड़ा-बहुत visualization tool भी है, लेकिन मूल पोस्ट के software की तुलना में इसकी functionality काफी कम है: https://www.nayuki.io/page/sqlite-database-file-visualizatio...
सच में प्रभावशाली! पहले SQLite internals पर काम कर चुका हूँ, इसलिए जानता हूँ कि इस तरह का काम और experiment बिल्कुल छोटा काम नहीं है
इसी संदर्भ में हाल ही में sqlite-repr [1] देखा, जो Dioxus में बना है और SQLite visualization के लिए एक दिलचस्प approach दिखाता है
[1] https://torymur.github.io/sqlite-repr/
10 साल से भी पहले security tool बनाते समय मैंने ऐसा कुछ किया था। ऐसा करने पर घनी तरह से डिज़ाइन किया गया engine और भी पसंद आने लगता है
मैं हमेशा सोचता था कि explorer या सिर्फ basic library भी मज़ेदार होगी, इसलिए खासकर इसे MIT license के तहत जारी देखना अच्छा लगा
अच्छा लग रहा है, बढ़िया बनाया है
पहली स्क्रीन पर color legend जोड़ना अच्छा होगा। शुरुआत में समझ नहीं आया कि रंग क्या दिखा रहे हैं
बड़े database पर यह थोड़ा संघर्ष करता दिखता है। मेरा 3.6GB, 942719-page वाला database था, तो pages को हिस्सों में दिखाना अच्छा रहेगा
titleattribute में दिखता है, इसलिए color scheme समझी जा सकती है, लेकिन यह बहुत स्पष्ट नहीं हैबड़े database पर धीमा होना भी सही बात है। pages को “server side” पर iterate किया जाता है, इसलिए अगर कई लाख हों तो समय लगता है
आदर्श रूप से real-time scrolling page range API अच्छा होगा, लेकिन सिर्फ “अगले 10,000 pages दिखाओ” जैसा तरीका भी काम कर सकता है
प्रोजेक्ट अच्छा है, लेकिन executable चलाने पर
"failed to run lua code: /index.lua:3: module 'utils' not found:"error आता हैमैं इतना disciplined नहीं हूँ कि lecture या class को आखिर तक देख सकूँ, इसलिए अंदर क्या हो रहा है और data को ज़्यादा efficient तरीके से कैसे structure किया जाए, इसे visual तरीके से समझने के लिए यह बहुत अच्छा लगा
मैंने हाल ही में SQLite file format समझाने वाला एक लेख लिखा था, और उसमें मददगार diagram भी शामिल किए थे। यह उपयोगी हो सकता है
https://blog.jabid.in/2024/11/24/sqlite.html
SQLite source में database file को देखने के लिए अच्छा showdb नाम का CLI tool शामिल है
बढ़िया है। मैं database सीख रहा हूँ और यह बहुत मददगार है