Hasty Briefsbeta

双语

Introducing Casita: A content-addressed store for source code and build artifact

11 hours ago
  • Casita 是首个用 Rust 重写 Nix 的独立层:一个用于源代码和构建工件的内容寻址对象存储,可作为 Rust 库和 CLI 用于 Linux、macOS 和 Windows。
  • 它解决了在自主开发中管理大量源代码版本和构建工件的挑战,避免了昂贵的重复和浪费的删除。
  • 通过 ArtifactStorage 接口的 Cargo 集成可以导入和恢复注册表存档、Git 依赖项以及工作区输出,支持不同后端;Casita 后端目前是实验性的。
  • 存储模型泛化了 Git:不可变的块由 BLAKE3 哈希寻址,文件、目录和提交的对象记录在块之上形成图结构。
  • 可选的 Bao 外置哈希允许范围验证而无需读取整个块,而完整顺序读取仍会验证完整哈希。
  • 根节点命名已保存的对象图,可以是永久的或可驱逐的,从而实现灵活的保留和垃圾回收;未更改的文件在不同版本间共享块。
  • 导入器支持文件系统目录、tar 存档、带有规范 SHA-256 验证的 NAR 存档,以及原生 Git 对象,同时保留原始 ID。
  • 可移植的 .casitar 存档包含完整的已保存图,可通过文件、管道或发布工件传输,并在导入时完全验证。
  • 同步会重用现有内容,验证传入的对象,并且仅在完整保存的版本到达后才更新目标名称。
  • 垃圾回收会回收不可达数据,包括在磁盘压力下自动回收,可以释放最近最少使用的可驱逐根节点,同时保留永久根节点。
  • 实验性集成包括用于原生 Git 对象存储的 Gix 适配器、用于只读挂载的 CasitaFS,以及使用 Chroma 的 wal3 预写日志实现共享多写入者存储库的 S3 配置文件。
  • Casita 是预发布版本,尚未标记 v0.1.0;剩余工作包括提升性能、扩大基准测试范围以及完成实际集成。