PackageTrack
Sign in Get early access

libfuzzer-sys

A wrapper around LLVM's libFuzzer runtime.

0.4.13 59M downloads/mo #1120 most downloaded on crates.io rust-fuzz/libfuzzer

What this package is like to depend on

Last release 2 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

3 releases in the last 12 months

see the full history below

Release timeline

24 releases · Sep 2019 to Jun 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 24
  1. 0.4.13 04 Jun 2026
    Release notes

    Released 2026-06-04.

    Changed

    • Updated docs for the fuzz_mutator! macro to link to the mutatis crate, which is a helpful crate when writing complex custom mutators.

    Open source →
  2. 0.4.12 10 Feb 2026
    Release notes

    Released 2026-02-10.

    Changed

    • Recommend SmallRng over StdRng in the examples for faster, more lightweight seeding and sampling
    • Updated rand dependency from 0.8.5 to 0.10
    • Updated flate2 dependency from 1.0.24 to 1.1
    • Rename gen variable to rng for better 2024 Edition compatibility

    Open source →
  3. 0.4.11 10 Feb 2026
    Release notes

    Released 2026-02-10.

    Changed

    • Updated to libFuzzer commit a47b42eb9f9b (release/22.x).

    Open source →
  4. 0.4.10 03 Jul 2025
    Release notes

    Released 2025-07-03.

    Changed

    • Updated to libFuzzer commit 6146a88f6049 (release/20.x).
    • Fuzz targets taking raw byte slice inputs can now return Corpus results.

    Open source →
  5. 0.4.9 28 Jan 2025
    Release notes

    Released 2025-01-28.

    Added

    • The example_init demonstrates how to pass an initialization code block to the fuzz_target! macro.

    Changed

    • The 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.

    Open source →
  6. 0.4.8 07 Nov 2024
    Release notes

    Released 2024-11-07.

    Added

    • Bindings to LLVMFuzzerCustomCrossOver through the fuzz_crossover macro. See the example_crossover directory in this crate's repo for a complete example.

    Changed

    • Updated to libFuzzer commit ab51eccf88f5321e7c60591c5546b254b6afab99 (release/19.x).

    Open source →
  7. 0.4.7 10 Aug 2023
    Release notes

    Released 2023-08-10.

    Added

    • Added the 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.

    Open source →
  8. 0.4.6 26 Jan 2023
    Release notes

    Released 2023-01-26.

    Fixed

    • Fixed a potential name conflict in functions generated by the fuzz_target! macro.
    • Fixed potential stale builds when updating custom libfuzzers to link against.

    Open source →
  9. 0.4.5 18 Oct 2022
    Release notes

    Released 2022-10-18.

    Added

    • 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_target! macro for details.

    Changed

    • Ensured that there is always at least one inline-never frame on the stack per fuzz target. This helps prevent oss-fuzz from "deduplicating" different bugs from different fuzz targets into the same bug.

    Open source →
  10. 0.4.4 01 Sep 2022
    Release notes

    Released 2022-09-01.

    Changed

    • Updated to libFuzzer commit df90d22 (release/15.x).
    • LLVM 16's upcoming change to build requirements to C++17 necessitate reflecting those changes. (libFuzzer updates contain C++14 code)
    • Drastically reduce build times by using parallel C++ compilation jobs
    • Updated rand dependency from 0.8.3 to 0.8.5
    • Updated flate2 dependency from 1.0.20 to 1.0.24

    Open source →
  11. 0.4.3 03 Mar 2022
    Release notes

    Released 2020-03-03.

    Changed

    • Updated to libFuzzer commit 60e32a1.

    Fixed

    • Fixed an issue where the 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.

    Open source →
  12. 0.4.2 26 May 2021
    Release notes

    Released 2020-05-26.

    Changed

    • Improved performance of checking for whether 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.

    Open source →
  13. 0.4.1 13 May 2021
    Release notes

    Released 2020-05-13.

    Added

    Changed

    • Upgraded libfuzzer to llvm/llvm-project's 70cbc6d.

    Open source →
  14. 0.4.0 24 Feb 2021
    Release notes

    Released 2021-02-24.

    Changed

    • The public arbitrary dependency was updated to version 1.0.

    Open source →
  15. 0.3.5 18 Nov 2020
    Release notes

    Released 2020-11-18.

    Changed


    Open source →
  16. 0.3.4 22 Aug 2020
    Release notes

    Released 2020-08-22.

    Changed

    • Updated arbitrary dependency to 0.4.6

    Open source →
  17. 0.3.3 27 Jul 2020
    Release notes

    Released 2020-07-27.

    Changed

    • 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").


    Open source →
  18. 0.3.2 18 Mar 2020
    Release notes

    Released 2020-03-18.

    Changed

    • Upgraded the arbitrary dependency re-export to version 0.4.1.

    Open source →
  19. 0.3.1 28 Feb 2020
    Release notes

    Released 2020-02-27.

    Changed

    • Fixed a fuzzing performance issue where libfuzzer could unnecessarily spend time exploring all the ways that an 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.

    Open source →
  20. 0.3.0 23 Jan 2020
    Release notes

    Released 2019-01-22.

    Changed

    • Now works with and re-exports arbitrary versions 0.4.x.

    Open source →
  21. 0.2.1 16 Jan 2020
    Release notes

    Released 2019-01-16.

    Added

    • Added support for the 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.

    Open source →
  22. 0.2.0 14 Jan 2020
    Release notes

    Released 2020-01-14.

    Changed

    • Using arbitrary 0.3.x now. It is re-exported as libfuzzer_sys::arbitrary.

    Added

    • You can enable support for #[derive(Arbitrary)] with the "arbitrary-derive" cargo feature. This is a synonym for the arbitrary crate's "derive" cargo feature.

    Open source →
  23. 0.1.1 10 Sep 2019

    Nothing published for this version

  24. 0.1.0 10 Sep 2019 withdrawn

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive