wotbreplay-parser

World of Tanks Blitz replay parser in Rust.

Crates.io Last commit GitHub Workflow Status License: MIT docs.rs

Quickstart

```rust use std::fs::File;

use anyhow::Result; use wotbreplayparser::Replay; use wotbreplayparser::models::TeamNumber;

fn main() -> Result<()> { let battleresults = Replay::open(File::open("tests/replays/battleresults.wotbreplay")?)? .readbattleresults()?;

assert_eq!(battle_results.timestamp, 1670018359);
assert_eq!(battle_results.players.len(), 14);

assert_eq!(battle_results.players[0].account_id, 520886428);
assert_eq!(battle_results.players[0].info.nickname, "77mmmr");
assert_eq!(battle_results.players[0].info.team_number(), TeamNumber::Two);
assert_eq!(battle_results.players[0].info.platoon_id, None);

assert_eq!(battle_results.players[1].info.nickname, "SNAK_THE_RIPPER");
assert_eq!(battle_results.players[1].info.team_number(), TeamNumber::One);
assert_eq!(battle_results.players[1].info.platoon_id, Some(547466834));

Ok(())

} ```

Replay structure

*.wotbreplay is a ZIP-archive containing: - battle_results.dat - meta.json - data.wotreplay

battle_results.dat

This is a pickled 2-tuple: - Some big number - Battle results serialized with Protocol Buffers

Useful tools

meta.json

data.wotreplay