s2prot
s2protocol-rs
s2prot | s2protocol-rs | |
---|---|---|
3 | 4 | |
51 | 102 | |
- | - | |
4.8 | 8.3 | |
about 1 month ago | about 1 month 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.
s2prot
-
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 2024 the Year of Everywhere?
vm = virtual machine/memory?
I'm porting this Python library to Rust: https://github.com/Blizzard/s2protocol.
For the shitty, first pass prototype code I've written so far I've seen a ~30-40x speedup compared to the Python implementation and a ~2x speedup compared to a Go implementation by someone else: https://github.com/icza/s2prot.
That is why I chose Rust over a GC language like Go. It's a lot faster out of the box, even without me having a strong understanding of memory operations.
- Could humans theoretically read the code of a SC-replay?
s2protocol-rs
- New version of s2protocol-rs SC2Replay parsing crate
-
Show HN: Rust nom parsing Starcraft2 Replays into Arrow for Polars data analysis
I mean for example https://github.com/sebosp/s2protocol-rs/blob/755098fb86ab6b1... I hacked my way around the json protocol specification, an enum has n types, using log I can find the number of bits I need to read to uniquely identify each variant, that kind of serialization I wonder the name of.
-
Swarmy: A Starcraft 2 Replay interactive visualizer in Bevy Engine - Early PoC
I'm in the process of releasing the crates for nom-mpq and s2protocol, probably will do so in the coming days.
What are some alternatives?
parse-rosetta-rs - Comparing parser APIs
Tims-PackageServer - Lightweight Package Server for WoltLab Community Framework
zephyrus-sc2-parser - A parser for .SC2Replay files
nom - Rust parser combinator framework
rust-parser
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.
mpq - Decoder/parser of Blizzard's MPQ archive file format