39 releases

0.13.1 Jun 27, 2025
0.12.0 Feb 20, 2024
0.11.2 Feb 13, 2023
0.11.1 Oct 25, 2022
0.4.0 Mar 30, 2017

#73 in Testing

Download history 36301/week @ 2025-12-26 37928/week @ 2026-01-02 35989/week @ 2026-01-09 37783/week @ 2026-01-16 35441/week @ 2026-01-23 37698/week @ 2026-01-30 23055/week @ 2026-02-06 20473/week @ 2026-02-13 25473/week @ 2026-02-20 42056/week @ 2026-02-27 35964/week @ 2026-03-06 39230/week @ 2026-03-13 40226/week @ 2026-03-20 41136/week @ 2026-03-27 41984/week @ 2026-04-03 47034/week @ 2026-04-10

175,927 downloads per month
Used in 7 crates

MIT/Apache

76KB
1.5K SLoC

cargo fuzz

A cargo subcommand for fuzzing with libFuzzer! Easy to use!

Installation

$ cargo install cargo-fuzz

Note: libFuzzer needs LLVM sanitizer support, so this only works on x86-64 and Aarch64, and only on Unix-like operating systems (not Windows). This also needs a nightly compiler since it uses some unstable command-line flags. You'll also need a C++ compiler with C++11 support.

Usage

cargo fuzz init

Initialize a cargo fuzz project for your crate!

If your crate uses cargo workspaces, add fuzz directory to workspace.members in root Cargo.toml

fuzz directory can be either a part of an existing workspace (default) or use an independent workspace. If latter is desired, you can use cargo fuzz init --fuzzing-workspace=true.

cargo fuzz add <target>

Create a new fuzzing target!

cargo fuzz run <target>

Run a fuzzing target and find bugs!

cargo fuzz fmt <target> <input>

Print the std::fmt::Debug output for a test case. Useful when your fuzz target takes an Arbitrary input!

cargo fuzz tmin <target> <input>

Found a failing input? Minify it to the smallest input that causes that failure for easier debugging!

cargo fuzz cmin <target>

Minify your corpus of input files!

cargo fuzz coverage <target>

Generate coverage information on the fuzzed program!

Documentation

Documentation can be found in the Rust Fuzz Book.

You can also always find the full command-line options that are available with --help:

$ cargo fuzz --help

Trophy case

The trophy case has a list of bugs found by cargo fuzz (and others). Did cargo fuzz and libFuzzer find a bug for you? Add it to the trophy case!

License

cargo-fuzz is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.

Dependencies

~3.5–10MB
~208K SLoC