NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1120 most downloaded on crates.io
A wrapper around LLVM's libFuzzer runtime.
Last release 4 months ago
04 Jun 2026
Release timing varies
gaps range from 2 weeks to 1.2 years
Nearly every release is documented
notes for 22 of 23 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
24 releases · first in 2019
Updated docs for the fuzz_mutator! macro to link to the `mutatis` crate, which is a helpful crate when writing complex custom mutators.
Released 2026-06-04.
fuzz_mutator! macro to link to the mutatis
crate, which is a helpful crate when writing complex
custom mutators.Recommend SmallRng over StdRng in the examples for faster, more lightweight seeding and sampling
Released 2026-02-10.
SmallRng over StdRng in the examples for faster, more lightweight
seeding and samplingrand dependency from 0.8.5 to 0.10flate2 dependency from 1.0.24 to 1.1gen variable to rng for better 2024 Edition compatibilityOne column per quarter.
Updated to libFuzzer commit a47b42eb9f9b (release/22.x).
Released 2026-02-10.
libFuzzer commit a47b42eb9f9b (release/22.x).Updated to libFuzzer commit 6146a88f6049 (release/20.x).
Released 2025-07-03.
libFuzzer commit 6146a88f6049 (release/20.x).Corpus results.The example_init demonstrates how to pass an initialization code block to the fuzz_target! macro.
Released 2025-01-28.
example_init demonstrates how to pass an initialization code block to
the fuzz_target! macro.fuzz_target! macro now supports the generation of LLVMFuzzerInitialize
to execute initialization code once before running the fuzzer. This change is
not breaking and is completely backward compatible.Bindings to LLVMFuzzerCustomCrossOver through the fuzz_crossover macro. See the example_crossover directory in this crate's repo for a complete exampl
Released 2024-11-07.
LLVMFuzzerCustomCrossOver through the fuzz_crossover
macro. See the example_crossover directory in this crate's repo for a
complete example.libFuzzer commit ab51eccf88f5321e7c60591c5546b254b6afab99
(release/19.x).Added the link_libfuzzer cargo feature. This feature is on by default and preserves the existing behavior of statically linking libfuzzer. You can dis
Released 2023-08-10.
link_libfuzzer cargo feature. This feature is on by default and
preserves the existing behavior of statically linking libfuzzer. You can
disable it if you are linking your own version of libfuzzer some other way, or
another library that provides the same ABI as libfuzzer.Fixed a potential name conflict in functions generated by the fuzz_target! macro.
Released 2023-01-26.
fuzz_target!
macro.Added the ability to tell libfuzzer whether to keep files inputs in the corpus or not. See the Corpus type and extended documentation for the fuzz_tar
Released 2022-10-18.
Corpus type and extended documentation for the
fuzz_target! macro for details.Updated to libFuzzer commit df90d22 (release/15.x).
Released 2022-09-01.
libFuzzer commit df90d22 (release/15.x).libFuzzer updates contain C++14 code)rand dependency from 0.8.3 to 0.8.5flate2 dependency from 1.0.20 to 1.0.24Updated to libFuzzer commit 60e32a1.
Released 2020-03-03.
libFuzzer commit 60e32a1.fuzz_target! macro would sometimes expand to
versions of itself that were not $crate prefixed and would result in "error:
cannot find macro fuzz_target in this scope" if the caller didn't import the
macro but used the qualified version of it instead.Improved performance of checking for whether cargo fuzz is requesting the std::Debug output of an input or not. This is always false during regular fu
Released 2020-05-26.
cargo fuzz is requesting the
std::fmt::Debug output of an input or not. This is always false during
regular fuzzing, so making this check faster should give slightly better
fuzzing throughput.Added support for defining custom mutators. See the documentation for the `fuzz_mutator!` macro for details.
Released 2020-05-13.
fuzz_mutator!
macro
for details.The public arbitrary dependency was updated to version 1.0.
Released 2021-02-24.
arbitrary dependency was updated to version 1.0.Released 2020-11-18. ### Changed * Upgrade libfuzzer to 7bf89c2 --------------------------------------------------------------------------------
Updated arbitrary dependency to 0.4.6
Released 2020-08-22.
arbitrary dependency to 0.4.6Upgraded libfuzzer to commit 4a4cafa.
Released 2020-07-27.
Upgraded libfuzzer to commit 4a4cafa.
Notably, this pulls in the new Entropic engine for
libFuzzer, which should
boost fuzzing efficiency when enabled. You can enable Entropic by passing
-entropic=1 to your built fuzz targets (although, note that it is still
labeled "experimental").
Upgraded the arbitrary dependency re-export to version 0.4.1.
Released 2020-03-18.
arbitrary dependency re-export to version 0.4.1.Fixed a fuzzing performance issue where libfuzzer could unnecessarily spend time exploring all the ways that an Arbitrary implementation could fail to
Released 2020-02-27.
Arbitrary implementation could fail to
construct an instance of itself because the fuzzer provided too few bytes. See
https://github.com/rust-fuzz/libfuzzer/issues/59 for details.Now works with and re-exports arbitrary versions 0.4.x.
Released 2019-01-22.
arbitrary versions 0.4.x.Added support for the CUSTOM_LIBFUZZER_STD_CXX= environment variable during builds that already use a custom libFuzzer checkout with CUSTOM_LIBFUZZER_
Released 2019-01-16.
CUSTOM_LIBFUZZER_STD_CXX=<lib> environment variable
during builds that already use a custom libFuzzer checkout with
CUSTOM_LIBFUZZER_PATH. This allows you to explicitly choose to link LLVM or
GNU C++ standard libraries.Using arbitrary 0.3.x now. It is re-exported as libfuzzer_sys::arbitrary.
Released 2020-01-14.
arbitrary 0.3.x now. It is re-exported as libfuzzer_sys::arbitrary.#[derive(Arbitrary)] with the
"arbitrary-derive" cargo feature. This is a synonym for the arbitrary
crate's "derive" cargo feature.Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →