# Rust Cache Action A GitHub Action that implements smart caching for rust/cargo projects ## Example usage ```yaml - uses: Swatinem/rust-cache@v1 ``` ## Specifics This action tries to be better than just caching the following directories: ``` ~/.cargo/registry ~/.cargo/git target ``` It disables incremental compilation and only caches dependencies. The assumption is that we will likely recompile our own crate(s) anyway. It also separates the cache into 3 groups, each treated differently: - Registry Index: `~/.cargo/registry/index/`: This is always restored from its latest snapshot, and persisted based on the most recent revision. - Registry Cache: `~/.cargo/registry/cache/`: Automatically keyed by the lockfile/toml hash, and is being pruned to only persist the dependencies that are being used. - target: `./target` Automatically keyed by the lockfile, toml hash and job, and is being pruned to only persist the dependencies that are being used. This is especially throwing away any intermediate artifacts.