HN讨论 · 身份未知
小项目需要单文件、可索引且支持变更监听的文档数据库
作者在个人小项目和微服务场景中需要一种只用一个文件就能持久化的存储,但 SQLite 的 schema/迁移体系显得繁琐,JSON 文件又必须整体加载导致启动成本高,因此用 Zig 写了单文件、可索引、可部分加载并支持查询监听的 BSON 文档数据库 Albedo,并已实际用于自己的 Flutter 移动应用和 Bun/Node 后端。
查看原始信号hn:49237132
目标用户
在个人小项目、微服务状态存储和移动应用中需要轻量单文件持久化的开发者,特别是使用 Flutter、Bun、Node 的用户。
潜在需求
需要一个单文件、可索引、可部分加载并支持查询和变更监听的文档存储,既避开 SQLite 的迁移复杂度,也避免 JSON 全量加载带来的启动开销。
发生场景
作者在做小项目时想要一个只包含单个文件的简单存储;SQLite 虽然有 schema 但迁移繁琐,对这类场景像过度设计,而 JSON 文件必须一次性全部加载,对于持有自身状态的微服务会造成启动时间成本。
来源证据
作者在小项目中需要单文件简单存储,认为 SQLite 的 schema 和迁移是过度设计,而 JSON 文件需一次性全量加载,会给持有自身状态的微服务带来启动成本。
It's literally an indexable BSON array with query listening, replication and basic crash recovery. While working on my little projects I always felt a need for some sort of simple storage, where I can just have a single file. However sqlite with its' schemas and migrations always felt icky, like an overkill to have a single file db, but a whole folder set for migrations. JSON files would require to be loaded all at once and for something small but thick, like microservices that would hold theirhttps://news.ycombinator.com/item?id=49237132
为什么值得留意
信号来自开发者在真实项目中的反复痛点:SQLite 太重、JSON 加载方式笨拙,两者之间缺少中间形态。作者并非为造轮子而做,而是先在自己移动端和后端中使用,再开源出来,这种来自实际构建者的一手需求描述值得继续观察同类场景是否还有更多实例。
已有方案
- SQLite
- JSON files
未满足部分
- SQLite 的 schema 与迁移对只需单文件的小项目显得繁琐
- JSON 文件需全量加载,小服务启动时成本高
- 缺少既支持部分加载又可索引、查询和监听变更的单文件内嵌文档存储
目前未知
- 信号仅来自项目作者自述,没有外部用户评论或采用证据
- 性能结论基于作者自己的基本基准测试,未独立验证
继续核实
- 除了作者,是否还有其他开发者因 SQLite 迁移繁琐或 JSON 全量加载成本而寻找单文件文档存储?
- Albedo 的查询监听和部分加载机制在真实微服务状态存储负载下的表现如何?
- 在 Flutter 或小型后端社区中,对这类轻量内嵌数据库的需求讨论是否常见?
主题词
single file databasedocument databasequery listeningstartup latency