ruzzy

Automates coverage-guided fuzzing of Ruby applications and native C extensions with AddressSanitizer/UBSan support via clang toolchain and ruzzy gem.

Updated Jan 17, 2026
One-click install
npx skills add https://github.com/mejango/juicy-vision --skill ruzzy-mejango
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ruzzy
Source: https://github.com/mejango/juicy-vision/tree/main/.claude/plugins/testing-handbook-skills/skills/ruzzy
Command: npx skills add https://github.com/mejango/juicy-vision --skill ruzzy-mejango

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Ruzzy provides coverage-guided fuzzing for Ruby applications and Ruby C extensions, helping teams detect memory-safety issues and crashes early in the development cycle.

Core Features & Use Cases

  • Coverage-guided fuzzing for Ruby code and native extensions to reveal memory safety issues.
  • Deterministic harness support: Provide harnesses and tracers to exercise code paths in a controlled way.
  • Use Case: Validate library gems with native extensions to ensure robustness under malformed inputs.

Quick Start

Use a simple Ruby harness that feeds inputs to Ruzzy.fuzz and run it with LD_PRELOAD set to the Ruzzy ASAN path to observe crashes.

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 of Ruby C extensions requires the ruzzy gem and a clang-based toolchain with AddressSanitizer and UBSan support to detect crashes and memory safety issues. It automates fuzz campaigns targeting native extension code paths.

What is coverage-guided fuzzing for Ruby applications?

Coverage-guided fuzzing for Ruby applications feeds inputs through deterministic harnesses to exercise code paths in a controlled way, revealing memory safety issues and crashes early in the development cycle. It targets both pure Ruby code and native extensions.

Do I need AddressSanitizer to fuzz Ruby native extensions?

AddressSanitizer is required to fuzz Ruby native extensions with this approach. The solution requires a clang-based toolchain with AddressSanitizer and UBSan support and the ruzzy gem to configure and execute the fuzz campaigns.

How do I set up a Ruby fuzzing harness to test library gems?

To set up a Ruby fuzzing harness, write a script that feeds inputs to Ruzzy.fuzz and run it with LD_PRELOAD set to the Ruzzy ASAN path. This validates library gems with native extensions to ensure robustness under malformed inputs.

Can I fuzz pure Ruby code or does it only work with C extensions?

You can fuzz pure Ruby code as well as Ruby C extensions. The solution targets both to uncover crashes and memory-safety issues, providing deterministic harness support to exercise code paths in a controlled way.

What are the limitations of coverage-guided fuzzing for Ruby?

Coverage-guided fuzzing for Ruby requires a clang-based toolchain with AddressSanitizer and UBSan support, limiting it to compatible environments. It also requires writing deterministic harnesses to effectively exercise targeted code paths.