spinel-coop/rv

[epic] Make caching real good

Open

#414 aperta il 25 gen 2026

Vedi su GitHub
 (2 commenti) (2 reazioni) (0 assegnatari)Rust (46 fork)user submission
good first issue

Metriche repository

Star
 (1706 star)
Metriche merge PR
 (Merge medio 4g 18h) (14 PR mergiate in 30 g)

Descrizione

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

Guida contributor