s2prot
Tims-PackageServer
s2prot | Tims-PackageServer | |
---|---|---|
3 | 1 | |
51 | 9 | |
- | - | |
4.8 | 8.5 | |
about 1 month ago | 7 days ago | |
Go | Rust | |
Apache License 2.0 | GNU Affero General Public License v3.0 |
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?
Tims-PackageServer
-
Show HN: Rust nom parsing Starcraft2 Replays into Arrow for Polars data analysis
I'm using nom to parse a simple access control ACL in https://github.com/wbbaddons/Tims-PackageServer/blob/master/.... You can see how it looks in the tests of the linked file.
The DSL supports comparison operators, '&&', '||' and nested expressions, while preventing mixing of '&&' and '||' without making precedence clear using parentheses. This DSL should fit 'non-trivial', but it still should be simple enough to easily understand it.
What are some alternatives?
parse-rosetta-rs - Comparing parser APIs
s2protocol-rs - Starcraft 2 Protocol Replay Reader
nom - Rust parser combinator 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.
mpq - Decoder/parser of Blizzard's MPQ archive file format
zephyrus-sc2-parser - A parser for .SC2Replay files
rust-parser