How krayoristine/ozpacker-rs works
OzPacker is a Windows-focused Warcraft III map packing CLI. The visible workflow accepts map and configuration paths, validates configuration and MPQ input, and uses the StormLib wrapper for archive operations. The README also documents map-building, Lua preprocessing, optimization, and protection capabilities, but their implementation is not represented in the sampled source; they are shown as documented product stages without inferred connections. Source evidence is limited, so the graph omits unverified runtime links.
Main entry points: main.rs CLI entry · storm/mod.rs MPQ wrapper · bindings.rs StormLib FFI · mimalloc/mod.rs Global allocator
Components 13
CLI and configuration
- CLI entry
src/main.rs - Configuration
src/config.rs
Map archives
- MPQ wrapper
src/storm/mod.rs - StormLib FFI
src/storm/bindings.rs - StormLib archive engine
external/stormlib/StormLib.h
Memory allocation
- Global allocator
src/mimalloc/mod.rs - Allocator bindings
src/mimalloc/bindings/mod.rs - mimalloc runtime
external/mimalloc/include/mimalloc.h
Documented capabilities
- Map building
src/main.rs - Lua preprocessing
src/main.rs - Map optimization
src/main.rs - Map protection
src/main.rs
Other components
- CLI user
Connections 11
- CLI user → CLI entry: provides inputs
src/main.rs - CLI entry → Configuration: loads and verifies
src/main.rs - CLI entry → MPQ wrapper: validates archive
src/main.rs - MPQ wrapper → StormLib FFI: calls archive API
src/storm/mod.rs - StormLib FFI → StormLib archive engine: binds native API
src/storm/bindings.rs - CLI entry → Global allocator: sets global allocator
src/main.rs - Global allocator → Allocator bindings: calls allocation API
src/mimalloc/mod.rs - Allocator bindings → mimalloc runtime: declares native API
src/mimalloc/bindings/mod.rs - Map building → Lua preprocessing: includes preprocessing
README.md - Map building → Map optimization: includes optimization
README.md - Map building → Map protection: includes protection
README.md