spinel-coop/rv

[epic] Make caching real good

Open

#414 ouverte le 25 janv. 2026

Voir sur GitHub
 (2 commentaires) (2 réactions) (0 assignés)Rust (46 forks)user submission
good first issue

Métriques du dépôt

Stars
 (1 706 stars)
Métriques de merge PR
 (Merge moyen 4j 18h) (14 PRs mergées en 30 j)

Description

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

Guide contributeur