spinel-coop/rv

[epic] Make caching real good

Open

#414 aberto em 25 de jan. de 2026

Ver no GitHub
 (2 comments) (2 reactions) (0 assignees)Rust (46 forks)user submission
good first issue

Métricas do repositório

Stars
 (1.706 stars)
Métricas de merge de PR
 (Mesclagem média 4d 18h) (14 fundiu PRs em 30d)

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

Guia do colaborador