differential-fuzzer

Compare Turso and SQLite results for generated SQL statements.

23.8k|1.2k|Updated Aug 26, 2023
One-click install
npx skills add https://github.com/tursodatabase/turso --skill differential-fuzzer
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: differential-fuzzer
Source: https://github.com/tursodatabase/turso/tree/main/.claude/skills/differential-fuzzer
Command: npx skills add https://github.com/tursodatabase/turso --skill differential-fuzzer

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

The differential fuzzer validates Turso results against SQLite by automatically generating a broad set of SQL statements and flagging mismatches, helping developers catch correctness bugs early.

Core Features & Use Cases

  • Cross-engine validation: compares results between Turso and SQLite for generated queries.
  • Flexible fuzzing scenarios: supports single runs and loop-based continuous fuzzing to stress-test databases.
  • Debuggable outputs: records failed statements and schema at failure for reproduction and debugging.

Quick Start

Execute cargo run --bin differential_fuzzer to start a basic fuzzing session. You can adjust the seed with --seed and control the number of statements with -n. To preserve outputs for debugging, use --keep-files.

Frequently Asked Questions about differential-fuzzer

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

FAQPage Schema
How do I validate SQL query results in Rust against SQLite?▼

You can validate SQL query results by running cross-engine differential fuzzing, which automatically generates SQL statements and compares Turso outputs against SQLite to flag result mismatches.

What is cross-engine differential fuzzing for database testing?▼

Cross-engine differential fuzzing is a validation technique that generates broad sets of SQL statements and compares results between Turso and SQLite to catch correctness bugs early in development.

How do I run a continuous fuzzing loop to stress-test a SQLite database?▼

You can run continuous loop fuzzing by executing the differential_fuzzer binary via cargo run, using the --seed flag to adjust generation and -n to control the number of SQL statements executed.

Can I reproduce SQL validation failures found during fuzzing?▼

Yes, you can reproduce failures by using the --keep-files flag, which preserves output artifacts including the failed SQL statements and database schema at the point of failure for debugging.

Do I need the Rust toolchain to run SQL differential fuzzing in CI?▼

Yes, the Rust toolchain is required to run the differential_fuzzer binary locally or in CI environments, as the fuzzing workflow is built and executed through cargo.

Why does my Turso database return different results than SQLite for generated queries?▼

Differences occur when Turso outputs mismatch SQLite results during automated SQL generation, indicating a correctness bug that the differential fuzzer records for reproduction and debugging.