PackageTrack
Sign in Get early access

bolero-generator-derive

value generator for testing and fuzzing

0.13.4 5.4M downloads/mo #4360 most downloaded on crates.io camshaft/bolero

What this package is like to depend on

Last release 1 years ago

03 Jul 2025

Ships fairly regularly

a new release about every 3 months

Some releases are documented

notes for 5 of 19 stable releases

Nothing withdrawn

no release was ever pulled

7 years old

19 releases · first in 2019

0 releases in the last 12 months

see the full history below

Release timeline

19 releases · Dec 2019 to Jul 2025
2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 19
  1. 0.13.4 03 Jul 2025

    Nothing published for this version

  2. 0.13.3 08 May 2025

    Nothing published for this version

  3. 0.13.2 14 Apr 2025

    Nothing published for this version

  4. 0.13.0 27 Feb 2025

    Nothing published for this version

  5. 0.12.0 27 Nov 2024

    Nothing published for this version

  6. 0.11.0 08 Jun 2024

    Nothing published for this version

  7. 0.10.0 28 Sep 2023

    Nothing published for this version

  8. 0.9.2 15 May 2023

    Nothing published for this version

  9. 0.9.1 30 Mar 2023

    Nothing published for this version

  10. 0.9.0 20 Mar 2023
    Release notes

    Bump crate versions to 0.9 (#128)

    Open source →
  11. 0.8.0 27 Oct 2022
    Release notes

    release 0.8 (#95)

    Open source →
  12. 0.7.0 24 May 2022

    Nothing published for this version

  13. 0.6.2 06 Nov 2021
    Release notes

    (cargo-release) bolero-generator-derive version 0.6.2

    Open source →
  14. 0.6.1 06 Jan 2021

    Nothing published for this version

  15. 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 →
  16. 0.5.2 31 May 2020

    Nothing published for this version

  17. 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 →
  18. 0.4.0 06 Jan 2020

    Nothing published for this version

  19. 0.3.0 05 Dec 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