ruzzy

Fuzz Ruby code and C extensions to uncover memory-safety issues.

Updated Mar 17, 2026
One-click install
npx skills add https://github.com/Avi977/ace-claude-toolkit --skill ruzzy-avi977
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ruzzy
Source: https://github.com/Avi977/ace-claude-toolkit/tree/main/skills/testing-handbook-skills/ruzzy
Command: npx skills add https://github.com/Avi977/ace-claude-toolkit --skill ruzzy-avi977

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Ruzzy enables automatic discovery of memory-safety issues in Ruby code and Ruby C extensions by performing coverage-guided fuzzing, reducing the time to identify crashes and undefined behavior.

Core Features & Use Cases

  • Coverage-guided fuzzing for Ruby targets and native extensions built with Ruby bindings.
  • Distinct harness support for pure Ruby code and C extensions to surface crashes.
  • Real-world use: fuzz a gem with native bindings to uncover hard-to-reproduce memory errors and stability issues.

Quick Start

Run a toy fuzzing example to verify Ruzzy by loading the gem and executing the provided harness.

Frequently Asked Questions about ruzzy

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fuzz Ruby C extensions to find memory safety issues?

Coverage-guided fuzzing is a testing technique that monitors code coverage during execution to generate new inputs targeting untested paths. It repeatedly mutates inputs to maximize coverage, automatically discovering hard-to-reach crashes and undefined behavior in Ruby code and native C extensions.

Can I use libFuzzer and ASAN to fuzz pure Ruby code?

Yes, you can use libFuzzer and ASAN integrations to fuzz pure Ruby code. The approach provides distinct harness support for pure Ruby targets and native extensions, allowing you to systematically surface memory errors and stability issues across both environments.

How do I set up a fuzzing harness for a Ruby gem with native C bindings?

To set up a fuzzing harness for a Ruby gem with native C bindings, you need to load the gem and define a target function that accepts fuzz inputs. You can then execute the provided harness to feed mutated data into your library code and monitor for crashes.

What is coverage-guided fuzzing and how does it find crashes in Ruby?

Coverage-guided fuzzing monitors code execution paths to generate inputs that reach untested code branches. It systematically mutates data to maximize coverage, automatically discovering hard-to-reproduce memory errors and undefined behavior in Ruby applications and native C extensions.

What is the best way to uncover hard-to-reproduce memory errors in Ruby gems?

The best way to uncover hard-to-reproduce memory errors in Ruby gems is through coverage-guided fuzzing with sanitizer integrations. This approach systematically mutates inputs to surface crashes and undefined behavior that manual testing rarely reaches.