NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4475 most downloaded on crates.io
fuzz and property testing framework
Last release 7 days ago
30 Sep 2026
Release timing varies
gaps range from 3 weeks to 1.2 years
Some releases are documented
notes for 7 of 24 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
24 releases · first in 2020
One column per quarter.
shrink to the minimal input in cargo-test mode
fix the check + test (1.68.0) jobs (clippy cleanup + MSRV-aware lockfile)
RunPhase, update(), with_context(), shrink_enabled, and on_failure() to TestRunContext (#314)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Bump crate versions to 0.9
Bump crate versions to 0.9 (#128)
Nothing published for this version
release 0.8
release 0.8 (#95)
Nothing published for this version
(cargo-release) bolero-engine version 0.6.2
(cargo-release) bolero-engine version 0.6.2
crux, seer, haybale, etc) we're deprecating specific language about fuzzing and going for a more general vocabulary.
core::any::type_name instead of backtrace inspectionfuzz in favor of more general termsWith 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.
fuzz! macro has been deprecated in favor of check!cargo bolero fuzz command has been deprecated in favor of cargo bolero test--fuzzer flag has been deprecated in favor of --engine--release build when testingIn 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.
--sanitizer address when 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 NONE can be passed.
Nothing published for this version
Nothing published for this version
ValueGenerator now includes a mutate method to improve efficiency
ValueGenerator now includes a mutate method to improve efficiencycargo-bolero with feature flagslibtest compatibilityFuzz tests can now be written inside of unit tests
#[test]
fn my_fuzz_test() {
fuzz!()
.with_type()
.for_each(|value: &Vec<u64>| {
// implement checks
})
}
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 with libtest, check!() is no longer needed.
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →