poka.sh

Docs

VPK

Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.

Valve VPK Preview.

At a glance

Purpose A Valve VPK package: the Source engine's archive directory (a _dir.vpk) that indexes files stored in numbered archive parts.
Extensions .vpk
Poka parser poka-vpk
Viewer poka-table-viewer
Depth tier Parser with a shared viewer (see Depth tiers)
Breadth tier B4 Summary (see Breadth tiers)

How much Poka reads

B4 Summary. The container and metadata are read and summarised (counts, properties, structure), but the main content is not rendered.

Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-vpk/src/main.rs (409 lines) and plugin.json. The three unit tests cover a well-formed tree, a tree that ends mid-entry (flagged) and an unsupported version; the corpus has no VPK. Covers .vpk and .vpk-valve. The table reads the version 1 or 2 header and walks the directory tree (extension, path, file name), giving one row per file with path, size, archive part, offset, CRC32 and preload bytes, with a summary of archives and top file types. Judgement: B4: the directory is listed but no file is extracted or shown.

What Poka does not read

  • File contents are not extracted or shown, including the data in the numbered archive parts
  • The version 2 MD5 sections and signature are not read or checked
  • CRCs are shown, not verified
  • Only the first 5,000 entries are listed
  • Files over 256 MiB are cut (flagged)

Libraries

Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.

  • sourcepak (candidate; MIT; Rust; https://lib.rs/crates/sourcepak) — Reads and writes VPK v1, v2 and Respawn (Titanfall) variants; repo barnabwhy/sourcepak-rs; v0.3.0, flagged unstable.
  • valve_pak (candidate; MIT; Rust; https://docs.rs/crate/valve_pak/latest) — Reads and writes VPK v1 and v2 with MD5 checks; repo floydya/valve-pak-rs; v0.1.0.
  • vpk (vpk-rs) (candidate; MIT; Rust; https://github.com/roman901/vpk-rs) — Limited to CS:GO-style VPKs; archives with non-zero file data section not supported.
  • ValvePython/vpk (candidate; MIT; Python; https://github.com/ValvePython/vpk) — Open, list, extract and create VPKs; multi-archive creation not supported.
  • rvpk (candidate; non-standard; Rust; https://github.com/panzi/rust-vpk) — A tool to create, list, check, and unpack Valve VPK files files.; v1.1.0, updated 2023-03-05; matched on lib.rs, not tested
  • l4d2_addon_parser (candidate; MIT; Rust; https://crates.io/crates/l4d2_addon_parser) — Parse L4D2 VPK files and extract info from addoninfo.txt data and the mission data for campaigns, and other utilities; v1.3.1, updated 2025-11-15; matched on lib.rs, not tested

Sources

  • parsers/poka-vpk/src/main.rs
  • parsers/poka-vpk/plugin.json