poka.sh

Docs

SAV

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.

Battery Save Preview.

At a glance

Purpose An SPSS or PSPP system file (.sav): a statistical dataset with a dictionary of variables and the case data.
Extensions .sav
Poka parser poka-sav
Viewer poka-tree-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-sav/src/main.rs (405 lines) and plugin.json. No unit tests or tests/samples.rs; the corpus has sample.sav but no test reads it. Covers .sav, .srm, .sa0, .sa1, .sa2, .sa3 and .sa4. Code wins: FILE_FORMATS.csv describes SAV as a battery save, but the crate reads only SPSS system files ($FL2 or $FL3); the corpus sample.sav is an SPSS file. The tree shows product, file label, cases, variables, slots, compression, value-label, document and extension record counts, creation date and byte order, and lists every variable with type and label. Judgement: B4: the dictionary is listed but the data is not.

What Poka does not read

  • Case data (the values) is not read
  • Value labels are counted, not shown
  • Missing-value definitions and print and write formats are not shown
  • Extension records are counted, not decoded: long variable names, very long strings, the character encoding and variable display settings
  • Text is decoded as UTF-8 whatever the file's encoding
  • Battery saves (.srm, .sa0–.sa4 and game .sav files) are routed here but refused as not SPSS
  • Files over 64 MiB are cut without a flag; an unknown record type ends the dictionary walk

Sources

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