Freedom251 › Test Coverage Tools
Tarpaulin

What Tarpaulin is
Tarpaulin is a free, open-source command-line tool for reporting code coverage in Rust projects that use Cargo. It collects line coverage from tests, doctests, benchmarks, examples, libraries, and binaries, and can produce HTML, JSON, stdout, XML, and LCOV reports. Users can include or exclude files and configure coverage runs in a TOML file. The project documents uploads to Coveralls or Codecov and use in several CI systems, including GitHub Actions, GitLab Pipelines, Azure Pipelines, Travis CI, and Jenkins. Installation options include Cargo, Nix, and cargo-binstall; it can also run in Docker. Tarpaulin is described for Linux, macOS, and Windows. On Linux, the default Ptrace backend works only on x86_64, while LLVM instrumentation is an alternative with its own limitations around nonzero test exits, thread safety, and fork-like system calls. The README warns that line coverage can have minor inaccuracies and that unusual combinations of packages and build features may cause issues. Branch coverage is not implemented. The project is licensed under MIT and Apache License 2.0.
Who it suits
Tarpaulin suits Rust developers using Cargo who need line coverage reports for project components and tests. It may also fit teams that upload results to a coverage service or run coverage in CI.
What it does well
- Free and open source under two licenses.
- Reports coverage in five listed formats.
- Covers tests, doctests, benchmarks, examples, libraries, and binaries.
- Supports file filters and TOML configuration.
What to know first
- Branch coverage is not implemented.
- Default Linux Ptrace backend works only on x86_64.
- Coverage may have minor inaccuracies.
Limits
Branch coverage is unavailable. Linux's default Ptrace backend is limited to x86_64; LLVM instrumentation can omit data after nonzero test exits and has thread-safety and fork-related limitations.
Getting started
- Open the Tarpaulin website on GitHub
- Install the command-line program with Cargo, Nix, or cargo-binstall
- Run it on Linux, macOS, Windows, or through Docker
- Set include or exclude filters and other options in a TOML file
- Generate HTML, JSON, stdout, XML, or LCOV coverage reports
- Upload coverage to Coveralls or Codecov when needed
Verdict
Tarpaulin offers Rust line coverage with configurable runs, varied report formats, and CI options. Users should account for its accuracy caveat and backend limitations.
Questions
Is Tarpaulin free?
Yes. Tarpaulin is free and open source, with no free-trial requirement listed.
Which languages does it cover?
Tarpaulin supports Rust projects that use the Cargo build system.
Which report formats are available?
It can produce HTML, JSON, standard-output, XML, and LCOV reports.
Can it run in CI?
Its documentation covers Travis CI, CircleCI, Jenkins, Codeship, Semaphore, Azure Pipelines, GitHub Actions, and GitLab Pipelines.
Can coverage be sent to external services?
The README describes uploading results to Coveralls or Codecov.
What license does it use?
Tarpaulin is licensed under both MIT and Apache License 2.0.
Facts from Tarpaulin's own pages
- Accuracy
- The README cautions that results may have minor inaccuracies and that unusual combinations of packages and build features can cause issues. · github.com, 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. · github.com, 5 Oct 2026
- Branch coverage
- The CLI help labels branch coverage as not implemented. · github.com, 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. · github.com, 5 Oct 2026
- Coverage
- The README describes line coverage as working and warns that results may contain minor inaccuracies. · github.com, 5 Oct 2026
- Coverage services
- The README describes uploading coverage to Coveralls or Codecov. · github.com, 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. · github.com, 5 Oct 2026
- Filtering
- It supports including or excluding files from coverage results and configurable coverage runs through a TOML file. · github.com, 5 Oct 2026
- Installation
- Tarpaulin is a command-line program installed with Cargo, and the README also mentions Nix and cargo-binstall installation options. · github.com, 5 Oct 2026
- License
- Tarpaulin is licensed under both MIT and Apache License 2.0. · github.com, 5 Oct 2026
- Linux limit
- The default Linux Ptrace backend only works on x86_64; the README says users can switch to LLVM instrumentation with --engine llvm. · github.com, 5 Oct 2026
- LLVM limitations
- LLVM coverage may omit data when tests exit nonzero and has thread-safety and fork-related limitations. · github.com, 5 Oct 2026
- Operating systems
- The README describes use on Linux, Mac, and Windows, and says Tarpaulin can also run in Docker. · github.com, 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. · github.com, 5 Oct 2026
- Purpose
- Tarpaulin is a code coverage reporting tool for Rust projects using the Cargo build system. · github.com, 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. · github.com, 5 Oct 2026
- Reports
- Tarpaulin can generate HTML, JSON, stdout, XML, and LCOV coverage reports. · github.com, 5 Oct 2026
- Security
- The Docker instructions use seccomp=unconfined and also describe adjusting the seccomp policy to allow the personality syscall. · github.com, 5 Oct 2026
- Support
- The README welcomes issues, feature requests, and pull requests, and points users to troubleshooting guidance. · github.com, 5 Oct 2026
- Test targets
- It can collect coverage for tests, doctests, benchmarks, examples, libraries, and binaries. · github.com, 5 Oct 2026
Where Tarpaulin stands on Freedom251
- Test Coverage Tools#20 of 27