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.
Fix build-dir v2 path matching on Windows. ( #521 , thanks @davidkna )
This is a breaking change for users who were previously parsing the output programmatically.
Change --show-missing-lines reporting to aggregate consecutive line numbers. (#497, thanks @saroad2)
Fix doctest coverage in 2024 edition workspaces with multiple packages. (#507, thanks @Eljees)
Fix an issue where build scripts appeared in reports even without --include-build-script when Cargo's new build-dir layout is used.
Fix output format of --fish. (#504, thanks @olexander-movchan)
Support --workspace/--all in cargo llvm-cov report subcommand. (#500, thanks @palfrey)
Support -m alias added in Cargo 1.97.
Add --coverage-host-only flag. ( #493 , thanks @davidhewitt )
--coverage-host-only flag. (#493, thanks @davidhewitt)Add support for unstable new layout of Cargo's build-dir ( -Zbuild-dir-new-layout ). ( #483 , thanks @ranger-ross )
Add support for unstable new layout of Cargo's build-dir (-Zbuild-dir-new-layout). (#483, thanks @ranger-ross)
Add --fail-under-file-lines option to set per-file coverage threshold. (#486, thanks @krady21)
Ask to run rustup install on stderr. (#490, thanks @narpfel)
Fix "missing or invalid CACHEDIR.TAG file" error with recent Cargo. (#491)
Publish artifact attestations .
Update minimal version of cargo-config2 to 0.1.40 to fix error with custom targets in recent nightly .
cargo-config2 to 0.1.40 to fix error with custom targets in recent nightly.cargo llvm-cov show-env improvements:
cargo llvm-cov show-env improvements:
--csh for csh and tcsh.--nu for nushell.--xonsh for xonsh.Diagnostics improvements.
Support ui_test .
Back "cargo-llvm-cov subcommands other than report and clean may not work correctly ..." error to warning.
Back "cargo-llvm-cov subcommands other than report and clean may not work correctly ..." error to warning.
This was changed from a warning to an error in 0.7.0, but it has been reverted because a case where it previously worked without issues was reported.
Support glob pattern, versioned name with partial version or <name>@<version> syntax, and package spec in --package . Previously, only package name an
Support glob pattern, versioned name with partial version or <name>@<version> syntax, and package spec in --package. Previously, only package name and versioned package name with <name>:<full_version> are supported. (#476)
This also fixes regression introduced in 0.7.0 where causing packages specified with --package are wrongly excluded from report/test when package is specified with the above syntaxes.
Support glob pattern, versioned name, and package spec in --exclude. When we tested it previously, Cargo did not support this, but the current version of Cargo does support it. (#476)
Align the exclusion behavior in reports when cargo-llvm-cov is performed in a sub-crate directory of a workspace or in the root crate of a non-virtual workspace without using --workspace or --package, to match the behavior when --workspace or --package is used (by default, only show the tested crates). (#476)
Compatibility Note: When --workspace or --package is not used, this will exclude other untested workspace members from the report that were previously implicitly included.
If you want to test other workspace members, consider using --workspace or --package. If you don't want to test other workspace members but still want to include them in the report, consider using --workspace or --exclude-from-test.
Fix regression introduced in 0.7.0 where causing coverage test failure in nextest's CI.
Improve compilation time, execution time, and disk usage by applying the flags required for code coverage instrumentation only to the crates that actu
Improve compilation time, execution time, and disk usage by applying the flags required for code coverage instrumentation only to the crates that actually need them. (#471)
Previously, there flags ware applied to the entire dependency graph, but most of it was actually unnecessary. Previous behavior can be opted into with --no-rustc-wrapper.
Fix a bug where --package option is not correctly handled and other unspecified workspace members are shown in the report. (#473)
Support coverage for proc-macro and build script even with cross-compilation. (#471)
Previously, it was only supported when testing against the host target.
Stabilize --dep-coverage. (#471)
Several bugs have been fixed, and improvements such as supporting multiple crates have also been made.
Stabilize --disable-default-ignore-filename-regex as --no-default-ignore-filename-regex. (8db80d5)
The old name is still available as an alias, but may removed in future breaking release.
cargo llvm-cov show-env improvements:
Turn some warnings into hard error. (837a118)
Diagnostics improvements. (93840f8)
Documentation improvements.
Support *-windows-gnullvm targets. (#470, thanks @mati865)
Support *-windows-gnullvm targets. (#470, thanks @mati865)
Fix a bug causing --profraw-only to remove too many files. (#469, thanks @smoelius)
Distribute prebuilt binary for AArch64 Windows.
-C instrument-coverage doesn't support aarch64-pc-windows-msvc yet (rust-lang/rust#150123), but cross-compile to aarch64-pc-windows-gnullvm works.
- Enable release immutability.
Update documentation to mention the way to get coverage for wasm32-unknown-unknown target.
Update documentation to mention the way to get coverage for wasm32-unknown-unknown target.
Exclude files named tests.rs/*_tests.rs/*-tests.rs from the report by default.
Update minimal version of cargo-config2 to 0.1.39 to fix regression causing "invalid type: .., expected struct TargetConfig" error when a custom field
cargo-config2 to 0.1.39 to fix regression causing "invalid type: .., expected struct TargetConfig" error when a custom field used in target.<triple> config. (#454)Support Cargo build-dir that added in Cargo 1.91.
Distribute prebuilt binaries for powerpc64le/riscv64gc/s390x Linux.
Fix bug in exclude of local vendored sources on Windows. (#442, thanks @LittleBoxOfSunshine)
Exclude local vendored sources by default. (#438, thanks @Altair-Bueno)
Add --with-pwsh-env-prefix to cargo llvm-cov show-env subcommand. (#411, thanks @LittleBoxOfSunshine)
Add --with-pwsh-env-prefix to cargo llvm-cov show-env subcommand. (#411, thanks @LittleBoxOfSunshine)
Document usage with GitLab CI. (#405, thanks @jaskij)
Document usage with afl.rs. (#369, thanks @njelich)
Update ruzstd to 0.8.
This increases the rustc version required to build cargo-llvm-cov. (rustc 1.73+ -> 1.81+) The cargo/rustc version required to run cargo-llvm-cov remains unchanged.
Remove dependency on home to relax the MSRV on Windows.
Remove dependency on home to relax the MSRV on Windows.
Weaken errors related to rustc version to warnings. (#407)
Add unstable --mcdc flag to enable mcdc coverage. (#383, thanks @Swatinem)
--mcdc flag to enable mcdc coverage. (#383, thanks @Swatinem)Distribute prebuilt binary for x86_64 FreeBSD.
Add --profraw-only option to cargo llvm-cov clean subcommand. (#385, thanks @smoelius)
Add --profraw-only option to cargo llvm-cov clean subcommand. (#385, thanks @smoelius)
Respect target.<triple>.rustdocflags that added in Cargo 1.78.
Disable quick-install fallback of cargo-binstall.
Add support for MC/DC coverage. (#363, thanks @aytey)
Add support for MC/DC coverage. (#363, thanks @aytey)
Documentation improvements.
This increases the rustc version required to build cargo-llvm-cov. (rustc 1.70+ -> 1.73+) The cargo/rustc version required to run cargo-llvm-cov remai
Update ruzstd to 0.7.
This increases the rustc version required to build cargo-llvm-cov. (rustc 1.70+ -> 1.73+) The cargo/rustc version required to run cargo-llvm-cov remains unchanged.
Skip merging profraw data if profraw files don't exist and a profdata file already exists. (#360, thanks @weiznich)
Skip merging profraw data if profraw files don't exist and a profdata file already exists. (#360, thanks @weiznich)
Update opener to 0.7.
Add unstable --branch flag to enable branch coverage.
--branch flag to enable branch coverage. (#356)Add --nextest-archive-file option to cargo llvm-cov report to support calling it for the result of cargo llvm-cov nextest --archive-file.
Add --nextest-archive-file option to cargo llvm-cov report to support calling it for the result of cargo llvm-cov nextest --archive-file. (#355)
Add unstable --dep-coverage option to show coverage of th specified dependency instead of the crates in the current workspace. (#353)
Fix issues in report when merging coverage. (#354)
It is no longer needed to pass --target/--release/--cargo-profile to cargo llvm-cov nextest --archive-file in most cases. Options passed to cargo llvm
Add --skip-functions flag to coverage generation. (#346, thanks @mlveggo)
--skip-functions flag to coverage generation. (#346, thanks @mlveggo)Make home dependency Windows-only dependency.
home dependency Windows-only dependency.Fix "The file was not recognized as a valid object file" error with --doc/--doctests flag on WSL.
--doc/--doctests flag on WSL. (#343)Support setting file name of LLVM_PROFILE_FILE.
LLVM_PROFILE_FILE. (#340)Support --target option for cargo llvm-cov nextest-archive.
Make --hide-instantiations flag default, and add --show-instantiations flag to allow opt-in of the previous behavior.
Remove dependency on is-terminal.
is-terminal.Fix panic when running tests at / such as in docker. (#326, thanks @MikeDevresse)
/ such as in docker. (#326, thanks @MikeDevresse)Add --fail-under-{functions,regions} options. (#323, thanks @CobaltCause)
--fail-under-{functions,regions} options. (#323, thanks @CobaltCause)Support --doctests flag in cargo llvm-cov report and cargo llvm-cov show-env.
--doctests flag in cargo llvm-cov report and cargo llvm-cov show-env.- Improve compile time.
Improve performance and reduce disc usage by passing --no-deps to cargo metadata.
--no-deps to cargo metadata.Fix "The file was not recognized as a valid object file" error on WSL.
Fix an issue where codes in the standard library are not being properly excluded from reports when using a custom toolchain.
Fix an issue where codes in the standard library are not being properly excluded from reports when using a custom toolchain. (#311)
Document a way to display coverage in VS Code.
Fix empty source path generated in cobertura.xml. (#309, thanks @mstyura)
Fix an issue where coverage is not collected or fails to generate coverage on cdylib or proc-macro crate on Windows.
- Diagnostics improvements.
Diagnostics improvements. (#305, #306)
Allow nightly to be specified by setting RUSTC_BOOTSTRAP=1, the same as for rustc and cargo. (#298, thanks @RocketJas)
RUSTC_BOOTSTRAP=1, the same as for rustc and cargo. (#298, thanks @RocketJas)Fix support for trybuild 1.0.76+.
trybuild 1.0.76+. (#301)Use --show-missing-lines logic in --fail-uncovered-lines. (#277, thanks @michaelvlach)
- Update cargo_metadata to 0.17.
cargo_metadata to 0.17.Inject additional contextual information about cargo-llvm-cov into the JSON output of llvm-cov. (#289, thanks @dnaka91)
Inject additional contextual information about cargo-llvm-cov into the JSON output of llvm-cov. (#289, thanks @dnaka91)
It allows other programs, that rely on this output, to make certain assertions about the behavior of cargo-llvm-cov and can help to share common information.
Fix regression introduced in 0.5.21.
Note: This release has been yanked due to regression fixed in 0.5.22.
Note: This release has been yanked due to regression fixed in 0.5.22.
-Z doctest-in-workspace has been stabilized in the 1.72 release" warning on the latest nightly.cargo-llvm-cov no longer sets the RUST_TEST_THREADS and NEXTEST_TEST_THREADS environment variables. cargo-llvm-cov now adopts another efficient way to
cargo-llvm-cov no longer sets the RUST_TEST_THREADS and NEXTEST_TEST_THREADS environment variables. cargo-llvm-cov now adopts another efficient way to workaround rust-lang/rust#91092. (#279)
This may greatly improve performance, especially when using cargo llvm-cov nextest.
Fix handling of --cargo-profile option for cargo llvm-cov nextest.
--cargo-profile option for cargo llvm-cov nextest. (#269)Support --ignore-run-fail for cargo llvm-cov nextest.
--ignore-run-fail for cargo llvm-cov nextest. (#263)Set CARGO_LLVM_COV environment variable. (#259, thanks @def-)
CARGO_LLVM_COV environment variable. (#259, thanks @def-)Your coding agent can read these notes before it upgrades. Set up the MCP server →