5 unstable releases
0.3.0 | Jun 22, 2024 |
---|---|
0.2.0 | Jun 15, 2024 |
0.1.2 | Apr 11, 2024 |
0.1.1 | Feb 29, 2024 |
0.1.0 | Feb 22, 2024 |
#1820 in Parser implementations
329 downloads per month
100KB
2K
SLoC
sourcepak
sourcepak is a Rust crate that provides support for working with VPK (Valve Pak) files. It allows you to read and write VPK files, as well as extract and pack their contents.
Features
- Read and write VPK files
- Extract files from VPK archives
- Optionally memory-map archive files for faster speeds (with the
mem-map
feature) - Write VPK directory files (
dir.vpk
)
Supported formats
VPK v1 (Alien Swarm, Dota 2, L4D, L4D2, Portal 2, SFM)
- Read directory files
- Read file contents
- Write VPK directories
VPK v2 (CS:GO, CS:S, DoD:S, HL:S, HL2, HL2:DM, Portal, TF2, Source 2)
- Read directory files
- Read file contents
- Write VPK directories
Respawn VPK (Titanfall)
- Read directory files
- Read file contents
- Read audio files (see here for why this is separate)
- Write VPK directories
Documentation
Documentation can be found here
Why does this crate exist?
I originally created the TFVPKTool TypeScript library to support reading Respawn VPK files, along with Harmony VPK Tool using Electron.
I very quickly noticed the issue that these often resulted in high memory use due to language and ecosystem I had used.
With sourcepak I am aiming to fix that.
Dependencies
~99–405KB