LibAFL is what you reach for when AFL++ or libFuzzer don't give you enough control. It's a Rust library that breaks fuzzing down into swappable components: observers, feedback mechanisms, mutators, schedulers, and executors. You can drop it in as a libFuzzer replacement with the compatibility layer, but the real value is building custom fuzzers when you need novel mutation strategies, unusual target architectures, or research-grade control over the fuzzing loop. Setup involves Clang 15-18, Rust toolchain configuration, and understanding the component model. The learning curve is steep compared to standard fuzzers, but you get fine-grained access to everything from coverage collection to corpus scheduling.
npx skills add https://github.com/trailofbits/skills --skill libafl