停止上传你的 DB!使用 WASM 在本地 100% 查看 SQLite 文件
Source: Dev.to
问题
“请上传你的 .db 文件” … 呃,不行。
上周我需要调试用户本地 SQLite 数据库中的一个奇怪问题。用户(已授权)把 .db 文件发给我。我只需要快速运行一条查询,例如:
SELECT * FROM users WHERE id = …;
我不想启动完整的 DBeaver 实例或写一个 Python 脚本来进行 30 秒的检查,于是搜索了 “Online SQLite Viewer”。所有结果都要求把文件上传到服务器:
- “上传你的文件以查看!”
- “服务器处理中…”
- “等待上传…”
这对生产数据来说是不可接受的。即使承诺会删除文件,我也不能冒着泄露用户数据库的风险。我在想,为什么在 2025 年查看本地文件仍然需要服务器往返,而浏览器已经可以运行复杂工作负载(例如 Doom)?答案是:其实不需要。
解决方案
我构建了一个完全在客户端运行的 SQLite 查看器,文件永远不会被上传。浏览器将文件读取到内存中,并直接把缓冲区传递给 WebAssembly(WASM)SQLite 引擎。
技术栈
- Nuxt 3 – 提供流畅的开发体验和自动导入。
- Tailwind CSS – 无需与 CSS 斗争即可美化界面。
- sqlite‑wasm – 官方的 SQLite WebAssembly 构建,在浏览器中提供完整的 SQLite 引擎。
与众不同之处
- 无需上传 – 当你 “打开” 文件时,浏览器在本地读取文件缓冲区并喂给 WASM 实例。打开 Network 面板可以看到没有任何请求发送你的数据库文件。
- 离线可用 – 页面加载后关闭 Wi‑Fi,查看器仍然可以工作,因为所有操作都在本地完成。
- 完整的 SQLite 支持 – 你可以执行标准 SQLite 引擎支持的任何查询。
功能
在浏览器中直接运行任意 SQL 查询,例如:
SELECT *
FROM orders
WHERE total > 100
ORDER BY created_at DESC;
查看器能够处理大文件(已在 500 MiB 左右的文件上舒适测试;更大的文件取决于可用内存)。
试用
该工具免费、开源,且不含广告或追踪。
尝试离线 SQLite 查看器(链接即将上线)。
欢迎告诉我你的使用体验——尤其是 1 GB 以上的文件!祝你编码安全愉快! 🔒