v1.0.0-rc.13 Release Notes
Breaking Changes
LibAFL Dependency Removed
The libafl feature flag and dependency have been completely removed. The RNG implementation (RomuDuoJrRand) and associated utilities (fast_bound, splitmix64) are now included directly in feroxfuzz. This significantly reduces the dependency footprint and simplifies integration.
New Features
Statistics Delta Calculations
Added arithmetic trait implementations (Add, AddAssign, Sub) for the Statistics struct, enabling you to calculate the difference between two statistics snapshots:
let delta = current_stats - previous_stats;This is particularly useful for:
- Tracking per-interval metrics in progress displays
- Comparing statistics across different fuzzing phases
- Building custom monitoring and reporting
Corpus Iteration Support
All corpus types now implement iter() and iter_mut() methods via CorpusType, allowing for idiomatic iteration over corpus items.
Action Convenience Method
Added Action::should_discard() method that returns true for Action::Discard or Action::AddToCorpus with FlowControl::Discard:
Resume-From / Start-At-Offset Support
Statistics::requests_mut() now provides mutable access to the request counter, enabling pause/resume workflows and the ability to start a scheduler from a specific offset in its iteration. A new example (start-at-wordset-offset.rs) demonstrates this capability.
Manual Timer Control
Added Statistics::start_timer(offset: f64) method for external control of the fuzzer's timing, useful for:
- Pause/resume workflows
- Using
Statisticsas a meta-statistics tracker outside of aFuzzer
Improvements
Response Observer Enhancements
- Added
request()method to retrieve the originalRequestfrom aResponseObserver - Exposed
method()to get the HTTP method that generated the response - Added case-insensitive header lookup with
get_header_case_insensitive() - Improved
is_redirect()andis_directory()reliability with case-insensitive header checks
Updated Dependencies
All dependencies have been updated to their latest compatible versions.
Examples
- Added:
start-at-wordset-offset.rs- Demonstrates starting a scan from a specific offset in a corpus - Removed:
havoc.rs- The havoc mutator example has been removed along with the LibAFL dependency