把 HTML 网页和 SQLite 数据库打包成一个 .capsule 文件的思路挺有意思

技术宅Kevin 初级 59分钟前 263 浏览 11 点赞 约 2 分钟

用 Capsule 把 Web App 变成单文件离线工具怎么操作

这个工具是用 Rust 和 Tauri 2.0 写的,核心逻辑是把 HTML 页面及其相关资源全部塞进 SQLite 数据库里。如果你想用 AI 快速生成一个适配这个格式的 App,不能直接随便写 Prompt,得让 AI 先读它的指令集。

具体步骤是:在你的 AI 聊天窗口里发送下面这段话,让它去读取 Capsule 的 App Wizard 规范,然后再告诉你想要什么样的功能。

Please read the app wizard instructions at https://withcapsule.app/prompt.txt and help me design an app.

这个单文件存储方案到底解决了什么

最让我觉得实用的是它处理数据的方式。通常我们写个纯前端页面,数据只能存 localStorage,换个浏览器就没了;如果想持久化就得搭后端。Capsule 提供了两种选择:一种是像 localStorage 那样存键值对,另一种是走 MongoDB 风格的集合 API 把数据当文档存到 SQLite 表里。

而且它支持把 PDF 或图片直接存进数据库,不用担心文件路径失效导致图片刷不出来。如果以后不想用这个软件了,数据可以通过 CSV 或 JSON 导出,没被锁死在私有格式里。

实际使用中需要注意的坑

虽然单文件很方便,但我在看它的机制时发现了一个明显缺陷:协作问题。因为数据全在本地文件里,如果两个人同时改一个文件,最后会产生两个副本。虽然作者给每条数据加了 UUID 和时间戳试图通过这个来做合并(Merge),但在实际操作中,这种基于文件的同步依然比不上实时数据库的流畅。

另外,权限管理目前还在完善中。为了安全,这些 .capsule 文档默认不能随便访问文件系统,联网也需要权限。如果你打算开发一个深度依赖本地文件读写的复杂工具,现在的权限模型可能会让你觉得有点受限。

性能和扩展性的判断

  • 存储性能: 基于 SQLite,处理小规模数据的读写速度极快,完全没压力。
  • AI 集成: 它可以调用本地或远程 AI 模型实现特定功能,这点比单纯的静态 HTML 强很多。
  • 兼容性: 目前版本有迁移机制,升级软件后数据不会丢失,但 1.0 版本之前,这种私有格式的生态还没打开。
总的来说,如果你需要做一个简单的记账本、个人知识库或者小型管理工具,且不希望为了存几个数据就去买云服务器,用这个方案把 Web App 变成一个随身携带的文件是个高效选择。
提示词rustSQLiteCapsuleTauri 2.0

全部回复 (10)

架构师老刘 中级 59分钟前

这问题问到点子上了,现在这产品纯属自嗨,除了能跑通 404 页面还能干嘛?

0 回复
大Tom在路上 初级 53分钟前

这分发成本也太高了,得让人装个软件才能看?直接用 WebAssembly 搞定不就完了。

0 回复
技术宅Ray 初级 47分钟前

纯靠浏览器原生能跑通?我记得 File System API 在 Safari 上坑多得要死。

0 回复
咖啡续命折腾党 中级 47分钟前

就这?赶紧把具体的 404 报错贴出来,别在这儿浪费时间发表情包。

0 回复
大Jerry 高级 47分钟前

光喊好有什么用,快告诉我你用哪个 API 跑通的,我想试下 4o-mini 能不能行。

0 回复
大Max爱学习 初级 47分钟前

真能打包所有东西?我看这就是个换皮的容器,估计跑个 50MB 内存就爆了。

0 回复
夜猫子创业者 专家 41分钟前

这玩意儿API写起来简直是受罪,谁能忍受写个简单缓存得写几十行回调?除非你现在还在用那个破旧的浏览器版本...

0 回复
前端大鹏 初级 39分钟前

这不就是把后端给干掉了吗,赶紧整套 Claude 3.5 跑跑看,能不能撑住 100 个并发?

0 回复
老陈 专家 35分钟前

现在居然有人想用VB搞Web?除非你打算用那个古董级的ASP.NET 4.0。

0 回复
小Kevin在路上 中级 35分钟前

这要是真能打包成单文件,那效率起码翻倍,怎么还没人做?

0 回复

发表回复

支持 Markdown 格式