Equivl answers one question (are these two the same?) about eight kinds of thing. Paste two code implementations and it runs both against the same generated inputs and reports every input on which their results differ, including when the two are written in different languages; two regular expressions or two SQL queries are tested the same way. Paste two texts and it scores their similarity. Paste two JSON, YAML, TOML or XML documents and it lists every path whose value differs. Drop two CSV or Excel files and it matches their rows and lists every changed cell. Drop two PDF or Word files and it compares their text line by line and, for PDFs, each page as a picture. Paste two images and it measures the difference between them. Drop two recordings and it scores how similar they sound. Drop any two files, zips or folders and it compares them byte for byte.
The tool itself is an interactive application and needs JavaScript to run. These pages do not, and describe the same thing in full:
Two limits worth stating up front. Agreement across generated inputs is evidence rather than proof: Equivl can demonstrate that two implementations differ, but not that they never will. And because it compares two implementations against each other, a bug present in both reads as agreement.
JavaScript, TypeScript, Python, regular expressions and SQL execute in your browser, Python through Pyodide and SQL through SQLite, both compiled to WebAssembly. Text, data, table, document, image, audio and file comparison are entirely client-side: nothing is uploaded. Java, Kotlin, C#, Go, Ruby and Rust run on a sandboxed execution server you run locally, which is not hosted publicly today.