Fuzzing is a testing technique that feeds random or semi-random inputs to a program to trigger crashes, panics, or undefined behavior. In Rust, the main tools are cargo-fuzz (libFuzzer-based) and AFL.rs.

Because Rust eliminates memory unsafety in safe code, fuzzing Rust targets mostly catches logic bugs, panics, and issues in unsafe blocks or FFI boundaries. Pairing fuzz targets with LLVM Sanitizers (ASan, MSan) catches more subtle issues.

Key consideration: sanitizer-instrumented binaries are much faster than Valgrind for fuzzing — see Valgrind.

For a practical example of validating fuzz targets by checking for sanitizer symbols in compiled binaries, see Fuzzing harness validator in Having Fun with Goblin.