tty0 · wasm
$ ./replay --analyze
[ok] parser_loaded | engine=rustydota | client_side=true
[ok] awaiting match_id_

analyze any dota 2 replay
> in your browser

rust replay parser compiled to webassembly. no downloads, no uploads, no accounts — paste a match id, get a full breakdown in seconds.

$
mode=client_side
backend=none
engine=rust → wasm
latency=<3s / replay
$./what_you_get--count=8
0x01[active]

combat_timeline

kills, deaths, assists — timestamps, weapons, abilities

0x02[active]

item_builds

purchase history, timing, gold spent — all 10 heroes

0x03[active]

laning_phase

per-second hp/mana 0–12 min, heal events, lane outcome

0x04[active]

networth_graph

gold/xp advantage over time, momentum shifts

0x05[active]

teamfight_breakdown

every fight isolated, damage, participants

0x06[active]

lane_outcomes

last hit diffs, kill trades, tower pressure

0x07[active]

farming_heatmap

spatial farm pattern, missed/inefficient farm

0x08[active]

draft_advantage

post-game counter + synergy scores

$./pipeline--count=3
01
$ paste match_id
any dota 2 match id. replay fetched from valve cdn.
02
$ wasm --parse
rust parser runs in-browser. no upload, no queue.
03
$ open /scoreboard /graph
interactive breakdown — cached in indexeddb.
$ man replay_parserread-only

written in rust, compiled to webassembly. runs at near-native speed inside your browser. reads valve's source 2 .dem format — kills, purchases, gold, xp, wards, roshan, towers, runes.

laning phase (0–12 min) captures per-second hp/mana snapshots for all 10 heroes plus heal events with source item tracking. powers the lane timeline visualization.

bz2 decompression + parse happens client-side. results cached in indexeddb — revisits are instant.

> handles raw .dem and bz2-compressed replays automatically. typical parse: <3s on modern hardware.

$./run_again
$