Tarpaulin
Tarpaulin is a free, open-source command-line tool for measuring line coverage in Rust projects that use Cargo.
What Tarpaulin is
Tarpaulin is a free, open-source command-line tool for measuring line coverage in Rust projects that use Cargo. It can collect coverage from tests, doctests, benchmarks, examples, libraries, and binaries, then produce HTML, JSON, standard-output, XML, or LCOV reports. File filters allow inclusion or exclusion, and a TOML file can hold coverage-run settings. The project documents uploads to Coveralls and Codecov and use with CI systems including GitHub Actions, GitLab Pipelines, Azure Pipelines, Travis CI, CircleCI, Jenkins, Codeship, and Semaphore. Tarpaulin runs on Linux, macOS, and Windows, with Docker, Nix, and cargo-binstall options. Linux's default Ptrace backend supports x86_64; LLVM instrumentation is an alternative. Results can contain minor inaccuracies, branch coverage is not implemented, and LLVM has limitations involving failed tests, thread safety, and fork-like calls.
Good
- Supports multiple Rust test targets
- HTML, JSON, XML, and LCOV reports
- File filtering and TOML configuration
- CI and coverage-service integrations
- MIT and Apache 2.0 licenses
Watch out
- Branch coverage is not implemented
- Linux Ptrace backend limited to x86_64
- Coverage may contain minor inaccuracies
- LLVM has thread and fork limitations
Who it suits
Tarpaulin suits Rust developers and CI pipelines that need line-coverage reports from Cargo projects. It is also useful for self-hosted or Docker-based coverage workflows.
Verdict
Tarpaulin provides broad line-coverage collection and report formats for Cargo projects across major desktop operating systems. Its backend caveats and lack of branch coverage should be considered before adoption.
The facts
Each one read from Tarpaulin's own pages, with the date it was checked.
What it does
- Accuracy
- The README cautions that results may have minor inaccuracies and that unusual combinations of packages and build features can cause issues.checked 5 Oct 2026
- Backend caveats
- The README warns that LLVM coverage may not return data when tests exit with a nonzero code and has limitations with thread safety and fork-like system calls.checked 5 Oct 2026
- Branch coverage
- The CLI help labels branch coverage as not implemented.checked 5 Oct 2026
- CI integrations
- The README documents CI use with Travis CI, CircleCI, Jenkins, Codeship, Semaphore, Azure Pipelines, GitHub Actions, and GitLab Pipelines; it says Jenkins is the only one tested among Circle, Semaphore, Jenkins, and Codeship metadata support.checked 5 Oct 2026
- Coverage
- The README describes line coverage as working and warns that results may contain minor inaccuracies.checked 5 Oct 2026
- Coverage services
- The README describes uploading coverage to Coveralls or Codecov.checked 5 Oct 2026
- Docker
- Docker images allow Tarpaulin to run on systems with Docker, and the README notes that required project dependencies may need to be installed in the image.checked 5 Oct 2026
- Filtering
- It supports including or excluding files from coverage results and configurable coverage runs through a TOML file.checked 5 Oct 2026
- Installation
- Tarpaulin is a command-line program installed with Cargo, and the README also mentions Nix and cargo-binstall installation options.checked 5 Oct 2026
- License
- Tarpaulin is licensed under both MIT and Apache License 2.0.checked 5 Oct 2026
- LLVM limitations
- LLVM coverage may omit data when tests exit nonzero and has thread-safety and fork-related limitations.checked 5 Oct 2026
- Operating systems
- The README describes use on Linux, Mac, and Windows, and says Tarpaulin can also run in Docker.checked 5 Oct 2026
- Purpose
- Tarpaulin is a code coverage reporting tool for Rust projects using the Cargo build system.checked 5 Oct 2026
- Release signing
- The GitHub release page says the 0.37.4 tag and its associated commit were signed with a verified committer signature.checked 5 Oct 2026
- Reports
- Tarpaulin can generate HTML, JSON, stdout, XML, and LCOV coverage reports.checked 5 Oct 2026
- Security
- The Docker instructions use seccomp=unconfined and also describe adjusting the seccomp policy to allow the personality syscall.checked 5 Oct 2026
- Support
- The README welcomes issues, feature requests, and pull requests, and points users to troubleshooting guidance.checked 5 Oct 2026
- Test targets
- It can collect coverage for tests, doctests, benchmarks, examples, libraries, and binaries.checked 5 Oct 2026
Where it runs
- Linux limit
- The default Linux Ptrace backend only works on x86_64; the README says users can switch to LLVM instrumentation with --engine llvm.checked 5 Oct 2026
- Platforms
- Linux uses Ptrace by default, which works only on x86_64, while LLVM instrumentation is available; Mac and Windows use LLVM instrumentation by default.checked 5 Oct 2026
Alternatives to Tarpaulin
- 1

Codecov
Free planOpen sourceWebAPIExtensionLinux8.0From $5 a month - 2
Avidemux
Free planOpen sourceWebLinuxmacOSWindows7.3Free plan - 3
Coverage.py
Free planOpen sourceAPILinuxmacOSSelf-hosted7.3Free plan - 4

Coveralls
Free planWebAPILinuxSelf-hosted6.8From $10 a month - 5
ReportGenerator
Free planLinuxmacOSWindows6.8$79 one-time - 6
gcov
Free planLinuxmacOSWindows6.5Free plan
