mpq
rust-parser
mpq | rust-parser | |
---|---|---|
1 | 2 | |
32 | 1 | |
- | - | |
4.0 | 10.0 | |
about 1 year ago | about 1 year ago | |
Go | Rust | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mpq
-
Show HN: Rust nom parsing Starcraft2 Replays into Arrow for Polars data analysis
SC2 replays are MPQ files, which is a proprietary format created and used by Blizzard. It's an archive that may contain multiple files stored with different compression and optionally encrypted. I wrote a lib to parse MPQ files that embodies SC2Replays: https://github.com/icza/mpq. I also wrote an SC2 replay parser that is more or less a port of the official s2protocol: https://github.com/icza/s2prot
rust-parser
-
Show HN: Rust nom parsing Starcraft2 Replays into Arrow for Polars data analysis
This is insanely cool! Very impressed you managed to implement a full parser in Rust.
I implemented a basic one in Rust a while back: https://github.com/ZephyrBlu/rust-parser
And a full one in Python with a few bells and whistles ages ago: https://github.com/ZephyrBlu/zephyrus-sc2-parser
Don't maintain either of them though :(, and the Rust one is super rough.
SC2 is a very interesting area for data analysis, but at the same time I found it very challenging. There is so much nuance and inconsistency across games it can be really hard to do accurately do things like categorize builds or measure build timings.
The area I ended up focusing on was builds, and I feel like I did some interesting stuff there: https://sc2.gg/reports/top-openings-2022/.
I found personal statistics less interesting than aggregate statistics. Even pro games are very volatile, ladder games even more so. Extremely hard to get reliable signal out of them if you're trying to track things across games. Even simple things like Collection Rate are poor indicators without significant categorization work (Matchup, build, opponent build, etc).
- I redesigned and open-sourced my SC2 search engine! Now featuring interactive filtering, fuzzy matching and search categories
What are some alternatives?
zephyrus-sc2-parser - A parser for .SC2Replay files
s2protocol-rs - Starcraft 2 Protocol Replay Reader
Tims-PackageServer - Lightweight Package Server for WoltLab Community Framework
pdx-tools - View maps, graphs, and tables of your save and compete in a casual, evergreen leaderboard of EU4 achievement speed runs. Upload and share your save with the world.
s2prot - Decoder/parser of Blizzard's StarCraft II replay file format (*.SC2Replay)
blizzard - Go client library for Blizzard API data
csvutil - csvutil provides fast and idiomatic mapping between CSV and Go (golang) values.
search