| Crates.io | cargo-gc-bin |
| lib.rs | cargo-gc-bin |
| version | 0.1.7 |
| created_at | 2023-08-24 12:18:48.848985+00 |
| updated_at | 2025-03-25 00:08:58.285273+00 |
| description | Garbage collect outdated cargo build artifacts. |
| homepage | |
| repository | https://github.com/waynexia/cargo-gc |
| max_upload_size | |
| id | 953642 |
| size | 41,546 |
Cargo extension to recycle outdated build artifacts. And try the best to avoid recompilation.
Install it with cargo:
cargo install cargo-gc-bin
The executable is cargo-gc. You can invoke it with cargo gc command:
cargo gc
It will check and remove all outdated build artifacts in the current project. See cargo gc --help for more information.
cargo build that takes lots of time.cargo check will re-check from scratchcargo gc uses the output information from cargo build to help recognize build artifacts in use, and removes all others. In the current implementation, top-level arficats are not recognized and leads to re-link after GC.
Compare to other utils like cargo sweep, this one is based on the informations provided by cargo itself rather than filesystem timestamp. So it can be more accurate and still avoiding recompilation as much as possible.
Technically, it's possible to implement a "perfect" GC that can remove all outdated artifacts without any recompilation. And done this in a totally static way (i.e., without invoking cargo build). As the tuple ("crate name", "fingreprint") can be computed outside of cargo.