NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3741 most downloaded on crates.io
Cargo subcommand to easily use LLVM source-based code coverage (-C instrument-coverage).
Last release 1 months ago
06 Sep 2026
Release timing varies
gaps range from 2 weeks to 6 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
6 years old
124 releases · first in 2021
One column per quarter.
Improve the --codecov flag to match how region coverage is calculated to the HTML report. (#255, thanks @andrewgazelka)
--codecov flag to match how region coverage is calculated to the HTML report. (#255, thanks @andrewgazelka)Fix version detection with dev build. (#257, thanks @tofay)
Fix an issue where --codecov flag reports a fully covered line as only partially covered or not covered. (#253, thanks @andrewgazelka)
--codecov flag reports a fully covered line as only partially covered or not covered. (#253, thanks @andrewgazelka)Fix an issue where --codecov flag doesn't exclude files that should be excluded from the report.
--codecov flag doesn't exclude files that should be excluded from the report. (#251)Add --codecov flag to support "Codecov Custom Coverage" format. This allows using region coverage on Codecov. (#249, thanks @andrewgazelka)
--codecov flag to support "Codecov Custom Coverage" format. This allows using region coverage on Codecov. (#249, thanks @andrewgazelka)- Remove dependency on tempfile.
tempfile.- Update lexopt to 0.3. - Update cargo-config2 to 0.1.5.
Update lexopt to 0.3.
Update cargo-config2 to 0.1.5.
- Support trybuild 1.0.76+.
trybuild 1.0.76+. (#238)Fix handling of cases where the target directory contains glob characters.
Fix "cannot satisfy dependencies so std only shows up once" error on cargo llvm-cov nextest introduced in 0.5.4.
std only shows up once" error on cargo llvm-cov nextest introduced in 0.5.4.Distribute prebuilt macOS universal binary.
Fix regression on doctests introduced in 0.5.4.
Use `cargo-config2` to load Cargo configuration.
Use cargo-config2 to load Cargo configuration. (#237)
This brings the following improvements:
target-spec.cargo config get. (Previously, this command was used in a form allowing failure, like rust-analyzer does.)Fix an issue where coverage of binary targets containing hyphens was not collected correctly.
Fix an issue where coverage of binary targets containing hyphens was not collected correctly. (#232)
Fix help messages for cargo llvm-cov report subcommand.
Fix an issue where if --cobertura and --output-path are used simultaneously, then the saved file doesn't contain the cobertura-style output. (#228, th
--cobertura and --output-path are used simultaneously, then the saved file doesn't contain the cobertura-style output. (#228, thanks @yuval-nextsilicon)Add --cobertura flag to support Cobertura's XML report format. (#224, thanks @mike-kfed)
Add --cobertura flag to support Cobertura's XML report format. (#224, thanks @mike-kfed)
Limit the number of test threads for nextest to work around rust-lang/rust#91092. (#223)
For subcommands other than cargo llvm-cov nextest, the same workaround has already been applied since 0.4.6.
Replace atty with is-terminal. (#226)
Deprecate --no-run in favor of cargo llvm-cov report subcommand.
Improve handling of cases where llvm-tools-preview component is not installed. (#219)
TL;DR: You no longer need to install llvm-tools-preview before running cargo-llvm-cov in most cases.
The new logic is based on the logic used by Miri when rust-src component or xargo is not installed.
See #219 for more.
Fix various CLI-related bugs. (#197, #217)
This fixes various bugs related to subcommands (especially nextest). The following is a partial list:
Add cargo llvm-cov report subcommand. (#217) This is equivalent to cargo llvm-cov --no-run, but it has a more obvious name and better diagnostics.
Add cargo llvm-cov test subcommand. (#217) This is equivalent to cargo llvm-cov without subcommand, except that test name filtering is supported.
Deprecate --no-run in favor of cargo llvm-cov report subcommand. (#217)
Add --no-clean flag to build without cleaning any old build artifacts. See #214 for more.
cargo-llvm-cov no longer redirects output from stdout to stderr if unnecessary. (#206)
Support shared target directory. (#215)
Support --keep-going (unstable), --ignore-rust-version. (#217)
Support --exclude-from-report and --ignore-run-fail for cargo llvm-cov run. (#217)
Support relative path in CARGO_LLVM_COV_TARGET_DIR. (#220)
Add LLVM_COV_FLAGS/LLVM_PROFDATA_FLAGS environment variables to pass additional flags to llvm-cov/llvm-profdata in a space-separated list. (#220)
Deprecate CARGO_LLVM_COV_FLAGS/CARGO_LLVM_PROFDATA_FLAGS environment variables instead of LLVM_COV_FLAGS/LLVM_PROFDATA_FLAGS environment variables. (#220)
Document environment variables that cargo-llvm-cov reads. (#220)
Remove cargo llvm-cov help subcommand that was added automatically by clap. (#197)
cargo-llvm-cov no longer maps the --jobs (-j) option to llvm-cov/llvm-profdata's -num-threads option.
This is to avoid confusion when using the -j option with nextest, which uses the -j option in a different sense than cargo.
Improve compile time. (#197)
Diagnostics improvements.
Fix an issue where "File name or extension is too long" error occurs in Windows. (#203, thanks @messense)
Fix an issue where merging of multiple cargo llvm-cov run coverage did not work.
cargo llvm-cov run coverage did not work.Remove workaround for an old rustc bug on Windows if unnecessary. (#199, thanks @ldm0)
Fix handling of existing CFLAGS/CXXFLAGS when --include-ffi flag is passed.
--include-ffi flag is passed. (#196)Support coverage of C/C++ code linked to Rust library/binary.
Fix an issue where some files were incorrectly ignored in reports.
Correctly escape regular expressions passed to -ignore-filename-regex. (#188, thanks @rhysd)
-ignore-filename-regex. (#188, thanks @rhysd)- Pin clap to 3.1.
Improve --show-missing-lines for multiple functions in a single line. (#183, thanks @vmiklos)
Improve --show-missing-lines for multiple functions in a single line. (#183, thanks @vmiklos)
Limit the number of test threads to work around rust-lang/rust#91092. (#184)
Fix handling of RUSTC_WRAPPER, RUSTC, and similar environment variables and configs.
Add --fail-uncovered-{lines,regions,functions} options to set the exit code based on uncovered {lines,regions,functions}.
Fix metadata for cargo binstall.
Add metadata for cargo binstall. (#175, thanks @vmiklos)
Add --coverage-target-only flag to use rustflags only for target. (#167, thanks @haraldh)
--coverage-target-only flag to use rustflags only for target. (#167, thanks @haraldh)cargo-llvm-cov no longer changes the current directory when running cargo.
cargo-llvm-cov no longer changes the current directory when running cargo. (#161)
Exclude build script from report by default. (#163)
You can use --include-build-script flag to include build script in report.
Set cfg(coverage_nightly) when nightly compiler is used. (#164)
Support short flags of --release (-r) and --features (-F). (#165)
Support custom profiles. (#166)
Fix an issue where codes in the target directory are not being properly excluded from reports when using show-env subcommand.
show-env subcommand. (#156)Alleviate an issue where "File name or extension is too long" error occurs in Windows.
Calculate --show-missing-lines based on function regions. (#150, thanks @vmiklos)
--show-missing-lines based on function regions. (#150, thanks @vmiklos)cargo-llvm-cov now always select the current toolchain.
cargo-llvm-cov now always select the current toolchain. (#148)
Previously, if -C instrument-coverage is not available in the current toolchain, the nightly toolchain was used. (See release note of 0.2.0 for more information on the previous behavior.)
Make --remap-path-prefix optional. (#141)
Previously this flag was always used, but due to some bugs discovered we decided to disable it by default. If you were dependent on the behavior provided by this flag, you can use the same behavior by passing the --remap-path-prefix flag to cargo-llvm-cov.
Stabilize a few unstable options.
Add support for nextest. (#144, thanks @skyzh)
nextest. (#144, thanks @skyzh)Add --show-missing-lines option to show uncovered lines in the command-line output. (#143, thanks @vmiklos)
--show-missing-lines option to show uncovered lines in the command-line output. (#143, thanks @vmiklos)Add --fail-under-lines option to set the exit code based on coverage percentage. (#139, thanks @vmiklos)
--fail-under-lines option to set the exit code based on coverage percentage. (#139, thanks @vmiklos)- Update clap to 3.1.
This behavior was unintentionally enabled in the older version of 0.1 and was deprecated in the recent version of 0.1.
Update to stabilized -C instrument-coverage. (#130)
Support for -Z instrument-coverage in the old nightly will also be kept for compatibility.
Compatibility Note: In 0.2, if -C instrument-coverage or -Z instrument-coverage is not available in the default toolchain, running cargo llvm-cov will find and use nightly (this is almost the same behavior as 0.1). This behavior is necessary because only the recent nightly currently supports -C instrument-coverage (and also for compatibility with 0.1). This behavior will be changed in 0.3 to always select the default toolchain. If you are likely to be affected by the change in 0.3, cargo-llvm-cov will emit a warning. 0.3 is planned to be released after -C instrument-coverage is available in the stable toolchain.
Remove support of multiple values in --package and --exclude. (#133)
Add --exclude-from-test option to exclude specific packages from the test but not from the report. (#131)
Add --exclude-from-report option to exclude specific packages from the report but not from the test. (#131)
Workspace members are now always included in the report unless specified by --exclude or --exclude-from-report. (#131)
Alleviate an issue where "File name or extension is too long" error occurs in Windows. (#126, thanks @aganders3)
Alleviate an issue where "File name or extension is too long" error occurs in Windows. (#126, thanks @aganders3)
Re-enable multiple values for --package and --exclude. (#127, thanks @aganders3)
This behavior was unintentionally enabled in older versions and disabled in recent versions.
We will support this again in 0.1.x for compatibility, but will remove it in 0.2.x.
Distribute prebuilt binaries for AArch64 Linux (gnu and musl).
Fix bug in show-env subcommand.
show-env subcommand. (#121)Add show-env subcommand. (#115, thanks @davidhewitt)
Support custom-built rust toolchain. (#111, thanks @tofay)
Exclude CARGO_HOME and RUSTUP_HOME used in the official rust docker image from reports.
CARGO_HOME and RUSTUP_HOME used in the official rust docker image from reports. (#105)Fix "conflicting weak extern definition" error on windows.
Fix a compatibility issue with cc.
cc. (#98)Distribute statically linked binary on Windows MSVC.
Fix an issue where some files were incorrectly ignored in reports. (#94, thanks @larsluthman)
Add --failure-mode option. (#91, thanks @smoelius)
--failure-mode option. (#91, thanks @smoelius)Add cargo llvm-cov run subcommand to get coverage of cargo run.
cargo llvm-cov run subcommand to get coverage of cargo run. (#89)Add --workspace flag to cargo llvm-cov clean subcommand.
Improve heuristics around artifact cleanup. (#79) This removes the need to recompile dependencies in most cases.
Add --verbose option to cargo llvm-cov clean subcommand.
Note: This release has been yanked due to regressions fixed in 0.1.3.
Add --lib, --bin, --bins, --example, --examples, --test, --tests, --bench, --benches, --all-targets, --profile, and --offline options.
Update clap to fix build error.
Update clap to fix build error. (#59)
Support latest version of trybuild. (#54)
Change output directory of --html and --open options from target/llvm-cov to target/llvm-cov/html. (#62)
You can now merge the coverages generated under different test conditions by using --no-report and --no-run. (#55)
cargo clean
cargo llvm-cov --no-report --features a
cargo llvm-cov --no-report --features b
cargo llvm-cov --no-run --lcov
Add environment variables to pass additional flags to llvm-cov/llvm-profdata. (#58)
CARGO_LLVM_COV_FLAGS to pass additional flags to llvm-cov. (value: space-separated list)CARGO_LLVM_PROFDATA_FLAGS to pass additional flags to llvm-profdata. (value: space-separated list)Fix "Failed to load coverage" error when together used with trybuild. (#49)
Fix bug in --exclude and --package options. (#56)
Fix bug in color-detection when both --text and --output-dir used. (#62)
--html and --open options no longer outputs a summary at the same time. (#61)
Respect rustflags and rustdocflags set by cargo config file. (#52)
Diagnostic improvements.
cargo-llvm-cov no longer requires rustfilt.
cargo-llvm-cov no longer requires rustfilt. (#29)
Acknowledge that procedural macros are supported. (#27)
Fix support of testing binary crate. (#23)
Fix an issue where git dependencies were displayed in the coverage report. (#19)
Fix an issue where path dependencies that not included in the workspace were displayed in coverage report. (#25)
Fix bug in --exclude option. (#30)
Fix several bugs.
Add --output-path option to specify a file to write coverage data into. (#18)
Add --ignore-filename-regex option to skip specified source code files from coverage report. (#19)
Add --color option. (#15)
Add --no-fail-fast, --frozen, and --locked option. (#16)
Add --verbose flag. (#19)
Improve diagnostics when the required tools are not installed. (#17)
Your coding agent can read these notes before it upgrades. Set up the MCP server →