spinel-coop/rv

[epic] Make caching real good

开放

#414 创建于 2026年1月25日

 (2 条评论) (2 个反应) (0 位负责人)Rust (46 个派生)user submission
good first issue

仓库指标

星标
 (1,706 个星标)
PR 合并指标
 (平均合并 4天 18小时) (30 天内合并 14 个 PR)

描述

We have several significant opportunities to improve the ways rv caches things to make the things we do often really fast:

  • set up the cacache crate for the other parts of rv to use
  • unpack ruby and gem tarballs into our cacache, so we only store each file once even if it is in multiple versions of a gem
  • install gems by copy-on-write hardlinking the files in that gem from cacache into the install directory, instead of unpacking tarballs
  • after compiling native extensions, copy the results into cacache. on future installs simply hardlink those files as well, so any particular machine will never compile a gem more than once
  • put git gem clones into the global cache, so you never have to do a full checkout of a git repo (eg rails) a second time

贡献者指南