adya checks histories of database transactions for isolation anomalies: G0, G1a/b/c, G-single, G-nonadjacent, G2-item and their process and real-time variants. It follows the approach of Jepsen's Elle and reads the same history formats (elle-cli JSON, JSON lines, Jepsen EDN), as a native binary or a library.
It also runs workloads: adya run drives SQLite, Postgres, MySQL, or any process that speaks a small JSON-lines protocol, records the history, checks it, and can inject faults through shell commands.
Validation: it matches all 56 of elle-cli's list-append and rw-register expected results, and CI compares it against the JVM Elle on random histories.
cargo install adya adya run sim -i snapshot-isolation -c serializable - crates.io: crates.io: Rust Package Registry
- docs: adya - Rust
- repo: GitHub - zaydmulani09/adya: Black-box transactional isolation checker: finds G0, G1, G-single, G2 and friends in database histories. A native, JVM-free take on Jepsen's Elle, with a workload runner for SQLite, Postgres, MySQL and anything else. · GitHub
Feedback on the library API is welcome.
1 post - 1 participant
