poka.sh

Docs

RES

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.

Compiled Win32 Resources.

At a glance

Original creator Microsoft
Purpose A compiled Win32 resource file: what the resource compiler makes from a .rc script before the linker puts it into an executable.
Extensions .res
Poka parser poka-res
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: high (the reviewer read the code and a test that proves the claim). Basis: Reviewed 2026-10-16: read parsers/poka-res/src/lib.rs (parse, detail_for, string_table_detail, version_detail), unit tests and tests/samples.rs, corpus samples test.res and ISCmplr.version.res. Covers the 32-bit .res format only. The tier rests on the resource list (type, name, language, size) being the real output, with content decoded only for four kinds.

What Poka does not read

  • 16-bit .res files (refused)
  • String table text beyond the first non-empty string of each block (count plus one sample string only)
  • Dialog, menu and accelerator definitions
  • Icon, cursor, bitmap and group-icon images (listed by size only)
  • Message tables, fonts and font directories
  • Version info VarFileInfo translation block and fixed file flags, OS and type
  • Version info shows at most 8 fields
  • RCDATA content above 8 bytes
  • Rows beyond the first 2000 are counted but not listed

Background

Microsoft documents the entry header (RESOURCEHEADER), whose type and name are each either a 16-bit ordinal or a string. A 32-bit .res starts with an empty marker entry, which is what tells it from the older 16-bit format. Poka lists one row per resource with its type, name, language and size, and, for string tables, gives the string count and the first non-empty string cut to 60 characters. A file without the 32-bit marker is refused rather than misread.

Versions

Version Identifier Poka Note
32-bit resource file Read
16-bit resource file Not read Recognised by its missing marker entry and refused.

Libraries

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

  • Kaitai Struct windows_resource_file spec (candidate; CC0-1.0; unknown; https://formats.kaitai.io/windows_resource_file/) — language: Specification, generates parsers for Rust, C++, C#, Go, Java, JavaScript, Python and others; Formal .res specification, not a ready-made crate; you compile it to the language you need.
  • winres-edit (candidate; Apache-2.0 OR MIT; Rust; https://github.com/aspectron/winres-edit) — Loads and modifies resources in .exe and .res files; docs say it only destructures VS_VERSIONINFO and updates go through the Win32 UpdateResource API, so it is Windows-oriented and not a full parser. Last release 0.2.0, March 2023.

Sources