#tool #cli #cargo

app cargo-sweep

A tool for cleaning unused build files created by Cargo

9 releases (5 breaking)

0.6.2 May 25, 2021
0.6.1 May 20, 2021
0.5.0 Jan 24, 2020
0.4.1 Feb 5, 2019
0.1.1 Nov 9, 2018

#128 in Cargo plugins

Download history 462/week @ 2022-12-04 490/week @ 2022-12-11 260/week @ 2022-12-18 176/week @ 2022-12-25 263/week @ 2023-01-01 625/week @ 2023-01-08 4048/week @ 2023-01-15 4280/week @ 2023-01-22 4227/week @ 2023-01-29 5708/week @ 2023-02-05 4660/week @ 2023-02-12 3437/week @ 2023-02-19 3472/week @ 2023-02-26 3592/week @ 2023-03-05 2610/week @ 2023-03-12 2153/week @ 2023-03-19

12,332 downloads per month

MIT license

816 lines


A cargo subcommand for cleaning up unused build files generated by Cargo.


Ideally you want:

  • Caching of recent artifacts for fast build times
  • Limited target size so that CI caches (on Travis etc.) are fast
  • An easy way of maintaining one or more projects at the same time

Cargo-sweep aims to solve all these issues for which a simple cargo clean is not sufficient.

Quick start

To install run:

cargo install cargo-sweep

To clean all build files older than 30 days in the local cargo project run:

cargo sweep -t 30

To clean all build files not made by the currently installed (by rustup) nightly compiler:

cargo sweep --toolchains="nightly"

This can be useful if you checked that your library works on stable, but mostly develop on nightly.

To clean all build files not made by any of the currently installed (by rustup) compilers:

cargo sweep -i

This can be useful if you just updated your compilers with a rustup update.

Non-rustup environment are also supported. If cargo-sweep fails to run rustup, it fallbacks to bare rustc call (rustc must be installed and the path to it must be available through the PATH environment variable).

To preview the results of a sweep run, which is recommended as a first step, add the -d flag, for instance:

cargo sweep -d -t 30

You can also specify a path instead of defaulting to the current directory:

cargo sweep -t 30 <path>

To clean everything but the latest build you will need to run it in several steps.

cargo sweep -s

<Insert any number of cargo build, cargo test etc...>

cargo sweep -f

The first step generates a timestamp file which will be used to clean everything that was not used between it and the next time the file (-f) option is used.

Finally, you can recursively clean all cargo project below a given path by adding the -r flag, for instance:

cargo sweep -r -t 30 code/github.com/holmgr/

For more information run:

cargo sweep -h


Cargo-sweep is distributed under the terms the MIT license.

See LICENSE for details.


~87K SLoC