PackageTrack
Sign in Get early access

bolero-libfuzzer

libfuzzer plugin for bolero

0.13.0 4.8M downloads/mo #4592 most downloaded on crates.io camshaft/bolero

What this package is like to depend on

Last release 1 years ago

no release in 18 months

Ships fairly regularly

a new release about every 6 months

Some releases are documented

notes for 4 of 15 stable releases

2 versions withdrawn

withdrawn after publishing

7 years old

17 releases · first in 2019

0 releases in the last 12 months

see the full history below

Release timeline

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

Releases

latest 17
  1. 0.13.0 27 Feb 2025

    Nothing published for this version

  2. 0.12.0 27 Nov 2024

    Nothing published for this version

  3. 0.11.0 08 Jun 2024

    Nothing published for this version

  4. 0.10.0 28 Sep 2023

    Nothing published for this version

  5. 0.9.0 21 Mar 2023
    Release notes

    Bump crate versions to 0.9 (#128)

    Open source →
  6. 0.8.0 27 Oct 2022
    Release notes

    release 0.8 (#95)

    Open source →
  7. 0.7.0 24 May 2022

    Nothing published for this version

  8. 0.6.4 06 Nov 2021

    Nothing published for this version

  9. 0.6.3 06 Nov 2021 withdrawn
    Release notes

    (cargo-release) bolero-libfuzzer version 0.6.3

    Open source →
  10. 0.6.2 06 Nov 2021 withdrawn
    Release notes

    (cargo-release) bolero-libfuzzer version 0.6.2

    Open source →
  11. 0.6.0 17 Nov 2020
    Release notes

    Added

    • MSRV set to 1.42.0
    • Initial support for executing tests with MIRI

    Updated

    • libfuzzer is now at version 11.0.0
    • afl is now at version v2.57b
    • honggfuzz is now at version 2.3.1

    Fixes

    • Invalid shrinking transformations could result in an empty panic message
    • Test name resolution now relies on core::any::type_name instead of backtrace inspection
    • Generators that panic could result in an empty panic message

    Breaking Changes

    Deprecate fuzz in favor of more general terms

    With the end goal of bolero becoming a front-end for various types of execution engines outside of fuzzing (e.g. crux, seer, haybale, etc) we're deprecating specific language about fuzzing and going for a more general vocabulary.

    • The fuzz! macro has been deprecated in favor of check!
    • The cargo bolero fuzz command has been deprecated in favor of cargo bolero test
    • The --fuzzer flag has been deprecated in favor of --engine

    Default to --release build when testing

    In order to achieve a better testing rate, tests are now compiled with --release. In order to opt out of this behavior, --release false can be passed.

    Default to --sanitizer address when testing

    Sanitizers provide additional information to the fuzzing engine which produces better results. This is now the default behavior. In order to opt out of this behavior, --sanitizer NONE can be passed.

    Open source →
  12. 0.5.0 23 May 2020
    Release notes

    Added

    • ValueGenerator now includes a mutate method to improve efficiency
    • AFL and honggfuzz can now be included/excluded from cargo-bolero with feature flags
    • AFL updated to 2.56b
    • honggfuzz updated to 2.2
    • libfuzzer updated to latest release/10.x

    libtest compatibility

    Fuzz tests can now be written inside of unit tests

    #[test]
    fn my_fuzz_test() {
        fuzz!()
            .with_type()
            .for_each(|value: &Vec<u64>| {
                // implement checks
            })
    }
    

    Breaking Changes

    Generated values must be cloned

    Fuzz targets must now call .cloned() if they wish to take ownership over the generated value, otherwise a reference will be passed.

    // before
    fn main() {
        fuzz!()
            .with_type()
            .for_each(|value: Vec<u64>| {
                // implement checks
            })
    }
    
    // after
    fn main() {
        fuzz!()
            .with_type()
            .for_each(|value: &Vec<u64>| {
                // implement checks
            })
    }
    
    // or
    
    fn main() {
        fuzz!()
            .with_type()
            .cloned()
            .for_each(|value: Vec<u64>| {
                // implement checks
            })
    }
    

    This change makes input iteration quite a bit faster as we're not allocating the generated input everytime.

    check!() has been removed

    Because fuzz!() is now compatible with libtest, check!() is no longer needed.

    Open source →
  13. 0.4.0 06 Jan 2020

    Nothing published for this version

  14. 0.3.0 05 Dec 2019

    Nothing published for this version

  15. 0.2.0 16 Oct 2019

    Nothing published for this version

  16. 0.1.1 12 Oct 2019

    Nothing published for this version

  17. 0.1.0 09 Sep 2019

    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