FREEDOM251

Freedom251 › Test Coverage Tools

Tarpaulin

Free plan LinuxMacSelf-hostedWindows

Visit Tarpaulin Alternatives

Tarpaulin's own site

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

  1. Open the Tarpaulin website on GitHub
  2. Install the command-line program with Cargo, Nix, or cargo-binstall
  3. Run it on Linux, macOS, Windows, or through Docker
  4. Set include or exclude filters and other options in a TOML file
  5. Generate HTML, JSON, stdout, XML, or LCOV coverage reports
  6. 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

Look at these too