differential-fuzzer
Property-based fuzzer that compares Turso against SQLite to catch SQL correctness bugs.
- Generates random SQL statements and schemas, then executes them on both Turso and SQLite to detect mismatches in row sets, error handling, or schema state
- Supports deterministic reproduction via seed-based runs, configurable statement/table/column counts, and verbose output for debugging
- Includes continuous loop mode for extended fuzzing campaigns and Docker runner for CI with configurable timeouts, GitHub issue auto-filing, and Slack notifications
- Outputs detailed logs (
test.sql,schema.json) and persists database files on demand for manual inspection and minimal reproducer creation
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
More from tursodatabase/turso
code-quality
General Correctness rules, Rust patterns, comments, avoiding over-engineering. When writing code always take these into account
1.0Kindex-knowledge
Generate hierarchical AGENTS.md knowledge base for a codebase. Creates root + complexity-scored subdirectory documentation.
657debugging
How to debug tursodb using Bytecode comparison, logging, ThreadSanitizer, deterministic simulation, and corruption analysis tools
631async-io-model
Explanations of common asynchronous patterns used in tursodb. Involves IOResult, state machines, re-entrancy pitfalls, CompletionGroup. Always use these patterns in `core` when doing anything IO
604storage-format
SQLite file format, B-trees, pages, cells, overflow, freelist that is used in tursodb
604testing
How 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 `.sqltest` and rust tests
598