Fuzzing

In previous chapters we've used AFL to validate that our programs did not exhibit crashing behavior. While AFL is very commonly used, it's not the only fuzzer available for Rust. LLVM has a native library—libfuzzer (https://llvm.org/docs/LibFuzzer.html)—covering the same space, and the cargo-fuzz (https://crates.io/crates/cargo-fuzz) project acts as an executor. You might also be interested in honggfuzz-rs (https://crates.io/crates/honggfuzz), a fuzzer developed at Google for searching out security related violations. It is natively multithreaded—there is no need to spin up multiple processes manually—and can do network fuzzing. My preference, traditionally, has been to fuzz with AFL. The honggfuzz project has real momentum, and readers ...

Get Hands-On Concurrency with Rust now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.