domenkozar
关注
提交点赞
三种把 SQLite 塞进 Nix 求值器的方式
nixpkgs-multiverse 项目用 JSON 索引存储 30 万包版本数据,但 builtins.fromJSON 是 eager 解析,查一条记录也要加载整个 5.3MB 文件。作者实测了四种把 SQLite 塞进 Nix 求值器的方案:builtins.exec 每次 fork 约 3.8ms、builtins.importNative 复用连接几乎免费(0.05s)、巨型.nix 文件比 JSON 还慢 1.7 倍、WASM 方案首次查询要 2.5s 编译 SQLite。结论是:目前没有一个方案适合直接用于生产,但 WASM 路径最有前景,未来代码缓存后可大幅改善。