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 2025Releases
latest 19-
0.13.403 Jul 2025Nothing published for this version
-
0.13.308 May 2025Nothing published for this version
-
0.13.214 Apr 2025Nothing published for this version
-
0.13.027 Feb 2025Nothing published for this version
-
0.12.027 Nov 2024Nothing published for this version
-
0.11.008 Jun 2024Nothing published for this version
-
0.10.028 Sep 2023Nothing published for this version
-
0.9.215 May 2023Nothing published for this version
-
0.9.130 Mar 2023Nothing published for this version
-
0.9.020 Mar 2023 -
0.8.027 Oct 2022 -
0.7.024 May 2022Nothing published for this version
-
0.6.206 Nov 2021 -
0.6.106 Jan 2021Nothing published for this version
-
0.6.017 Nov 2020Release notes
Open source →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_nameinstead of backtrace inspection - Generators that panic could result in an empty panic message
Breaking Changes
Deprecate
fuzzin favor of more general termsWith the end goal of
bolerobecoming 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 ofcheck! - The
cargo bolero fuzzcommand has been deprecated in favor ofcargo bolero test - The
--fuzzerflag has been deprecated in favor of--engine
Default to
--releasebuild when testingIn order to achieve a better testing rate, tests are now compiled with
--release. In order to opt out of this behavior,--release falsecan be passed.Default to
--sanitizer addresswhen testingSanitizers 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 NONEcan be passed. -
0.5.231 May 2020Nothing published for this version
-
0.5.023 May 2020Release notes
Open source →Added
ValueGeneratornow includes amutatemethod to improve efficiency- AFL and honggfuzz can now be included/excluded from
cargo-bolerowith feature flags - AFL updated to 2.56b
- honggfuzz updated to 2.2
- libfuzzer updated to latest release/10.x
libtestcompatibilityFuzz 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
clonedFuzz 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 removedBecause
fuzz!()is now compatible withlibtest,check!()is no longer needed. -
0.4.006 Jan 2020Nothing published for this version
-
0.3.005 Dec 2019Nothing published for this version