crates_diff
Full-source diffs between any two versions of a Rust crate from crates.io — a free, open-source, browser-based alternative to diff.rs.
Compare any two versions of a Rust crate, file by file
crates_diff downloads the real crate tarballs from
static.crates.io and shows a complete, file-by-file source diff
between any two published versions — right in your browser, with nothing to
install. Use it to audit a dependency update, review exactly what changed
before you bump a version in Cargo.toml, or understand a security
advisory in a Rust package.
What you can do with crates_diff
- Whole-crate diff — every file marked added, removed, modified, or unchanged, with per-file line counts and a full unified or side-by-side diff with Rust syntax highlighting.
- Search inside the change — jump to every line that mentions a symbol across the version transition.
- GitHub history — the commits between the two versions' git tags.
- Notes & line comments — leave PR-style review notes on a crate or a specific upgrade.
- Local versions — diff a published release against an unpublished crate source tree you import locally.
Popular Rust crates to compare
Frequently asked questions
What is crates_diff?
crates_diff is a free, open-source, browser-based tool that shows the full source diff between any two versions of a Rust crate published on crates.io. It downloads the crate tarballs and diffs them entirely in your browser — nothing is installed and no code is sent to a server.
How is it different from diff.rs?
crates_diff is an actively maintained, open-source alternative to diff.rs. It defaults the file tree to only changed files, offers unified and side-by-side diffs, content search across a transition, GitHub commit history, and PR-style review notes — and it works for many crates where diff.rs fails to load.
Is it free and open source?
Yes. crates_diff is completely free, and the source is on GitHub.
Do I need to install anything?
No — it runs fully in the browser. Search a crate, pick two versions, and the diff loads. There is also an optional local CLI build for auditing unpublished versions.
Can I diff against an unpublished version of a crate?
Yes, with the local build: import a crate source tree with
crates_diff add-local <crate> <version> <path> and
it appears in the version list next to the published releases.
Loading the interactive app… if it doesn't appear, enable JavaScript.