Repository navigation
Home
parityrun proves that a rewrite of your app behaves exactly like the original. It records what your app does (every page, form answer, redirect, database row and file it writes) and then checks a new version against that recording: a port from PHP to JavaScript, TypeScript or Rust, a framework upgrade, or simply the next release. With your own AI tool, it can do the port too, turn by turn, until the new version matches.
pip install parityrun
parityrun
Run the second one in your app's folder. The first time, it finds how to start your app and every route in its code, and records what the app does. Every time, it shows where you are and the next command to run:
my-app: 1 of 1 scenario recorded
3/14 routes visited
Next: parityrun capture
use the app in your browser: 11 routes not visited yet
No Python? See Installation for a one-line installer.
| Page | What it covers |
|---|---|
| Installation | pip, the one-line installers, updating, what else your app and ports need |
| Getting Started | from an existing app to recordings: parityrun, init, capture, routes, code coverage |
| What Is Compared | pages, redirects, databases, files, LLM prompts, outside calls; what is normalised |
| Porting with an AI Tool |
parityrun port: the turn-by-turn loop, Claude Code or your own tool |
| Libraries | code with no pages, called function by function through a shim |
| Project Settings | the project folder, impls.json, parityrun_project.py and every setting |
| Databases | SQLite, MySQL, MariaDB, PostgreSQL |
| Scenarios | every scenario key: requests, forms, uploads, captures, polling, LLM replies, CLI steps |
| Commands | every command and option |
| Examples | the notes service, the guestbook site and the cart library, with their ports |
A check proves the new version identical on the recorded scenarios, which visit a share of the routes and (for
PHP) run a share of the code that parityrun coverage shows. A path no scenario takes is not proven, so capture
until coverage is where you want it. The honest claim parityrun makes is always: identical on N recorded scenarios
that cover X % of the original's code.
parityrun is MIT-licensed. Install: pip install parityrun. Issues and source: github.com/arttujan/parityrun.
Start
Porting
Reference
Links