What problem does it solve? Ruby lacks production-ready coverage-guided fuzzing tools, making it hard to detect memory corruption, undefined behavior, and crashes in Ruby applications and native C extensions before they reach production. ## Core Features & Use Cases - Pure Ruby Fuzzing: Uses a tracer-and-harness script pattern to apply coverage-guided fuzzing to pure Ruby code. - C Extension Fuzzing: Fuzzes Ruby gems with native extensions compiled with AddressSanitizer and UndefinedBehaviorSanitizer flags to detect heap overflows, use-after-free, and undefined behavior. - libFuzzer Integration: Passes all standard libFuzzer options (corpus directories, max_len, timeout) and supports crash reproduction from saved artifacts. - Use Case: Fuzz the msgpack gem by compiling it with sanitizer flags, writing a harness that calls MessagePack.unpack on fuzzer input, and running it under LD_PRELOAD with ASan to surface memory corruption bugs. ## Quick Start Install the ruzzy gem with clang, set the ASAN_OPTIONS environment variable, and run a fuzzing harness with LD_PRELOAD pointing to Ruzzy's ASan library.