tursodatabase avatar

Differential Fuzzer

This is a property-based differential fuzzer that catches correctness bugs by running generated SQL statements against both Turso and SQLite, then comparing results. You can run it once with a specific seed for reproducibility or loop it continuously to hunt for edge cases. It generates hundreds or thousands of statements per run and flags mismatches in row sets, error handling, or schema state. The Docker runner is built for CI and will auto-file GitHub issues when it finds problems. Useful when you're working on Turso's SQL implementation and need confidence that behavior matches SQLite semantics. The seed-based reproduction workflow is solid: just grab the seed from the logs, rerun with verbose output, and you'll get the exact failing statement sequence dumped to test.sql.

skills.sh installs
1.2K
GitHub stars
25.2K
last updated
Aug 21, 2026

Install

$ npx -y skills add tursodatabase/turso --skill differential-fuzzer --agent claude-code

Installs into .claude/skills of the current project.

Files

Differential Fuzzer

Always load Debugging skill for reference

The differential fuzzer compares Turso results against SQLite for generated SQL statements to find correctness bugs.

Location

testing/differential-oracle/fuzzer/

Running the Fuzzer

Single Run

# Basic run (100 statements, random seed)
cargo run --bin differential_fuzzer

# With specific seed for reproducibility
cargo run --bin differential_fuzzer -- --seed 12345

# More statements with verbose output
cargo run --bin differential_fuzzer -- -n 1000 --verbose

# Keep database files after run (for debugging)
cargo run --bin differential_fuzzer -- --seed 12345 --keep-files

# All options
cargo run --bin differential_fuzzer -- \
  --seed <SEED>           # Deterministic seed
  -n <NUM>                # Number of statements (default: 100)
  -t <NUM>                # Number of tables (default: 2)
  -c <NUM>                # Columns per table (default: 5)
  --verbose               # Print each SQL statement
  --keep-files            # Persist .db files to disk

Continuous Fuzzing (Loop Mode)

# Run forever with random seeds
cargo run --bin differential_fuzzer -- loop

Sponsors

Details

Repository
github.com/tursodatabase/turso
Category
Databases
First seen
May 16, 2026

More from tursodatabase/turso

All 14

Recommended

More Databases
1tursodatabase avatardebuggingtursodatabase/tursoHow to debug tursodb using Bytecode comparison, logging, ThreadSanitizer, deterministic simulation, and corruption analysis tools0skills.sh installs
2tursodatabase avatartestingtursodatabase/tursoHow to write tests, when to use each type of test, and how to run them. Contains information about conversion of `.test` to `.sqltest`, and how to write `.sqlte0skills.sh installs
3insforge avatarinsforgeinsforge/insforge-skillsUse this skill when writing app code with InsForge or @insforge/sdk: database CRUD, auth, storage uploads/storage RLS, functions, OpenRouter AI, realtime, email65.2Kskills.sh installs
4googlechrome avatarmodern-web-guidancegooglechrome/modern-web-guidanceSearch tool for modern web development best practices. MANDATORY: Execute FIRST for all HTML/CSS and clientside JS tasks. Do NOT skip — web APIs evolve rapidly 38.8Kskills.sh installs
5expo avatarexpo-examplesexpo/skillsFramework (OSS). Expo's official example projects - the expo/examples repo of ~70 `with-*` integrations (Stripe, Clerk, Supabase, OpenAI, maps, Reanimated, SQLi29.9Kskills.sh installs
6google avataralloydb-basicsgoogle/skillsManages clusters, instances, and backups for AlloyDB for PostgreSQL, and integrates with AlloyDB Model Context Protocol (MCP) tools for automated database opera14Kskills.sh installs