bolero-generator
value generator for testing and fuzzing
0.13.5
5.4M downloads/mo
#4362 most downloaded on crates.io
camshaft/bolero
What this package is like to depend on
Last release 1 years ago
03 Jul 2025
Release timing varies
gaps range from 2 weeks to 5 months
Rarely documented
notes for 5 of 27 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
27 releases · first in 2019
0 releases in the last 12 months
see the full history below
Release timeline
27 releases · Sep 2019 to Jul 2025Releases
latest 27-
0.13.503 Jul 2025Nothing published for this version
-
0.13.420 May 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.120 Mar 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.120 Jun 2024Nothing published for this version
-
0.11.008 Jun 2024Nothing published for this version
-
0.10.204 Mar 2024Nothing published for this version
-
0.10.123 Dec 2023Nothing published for this version
-
0.10.028 Sep 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.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.129 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.122 Jan 2020Nothing published for this version
-
0.4.006 Jan 2020Nothing published for this version
-
0.3.005 Dec 2019Nothing published for this version
-
0.2.016 Oct 2019Nothing published for this version
-
0.1.112 Oct 2019Nothing published for this version
-
0.1.009 Sep 2019Nothing published for this version