Skip to content

StuffIt decoders: classic method 13 (LZ+Huffman), 5 (LZAH), RLE90; SIT5 Arsenic #67

@MagicalTux

Description

@MagicalTux

fstool now has a read-only StuffIt reader (src/fs/archive/sit.rs, behind the sit feature) for the classic SIT! container. It decodes data-fork method 0 (store) today; the compressed methods need codecs here and currently read as a clean Unsupported.

Classic SIT! methods needed (per fork):

  • 13 — LZ + Huffman. The common StuffIt Deluxe method — highest priority.
  • 5 — LZAH (LZ with adaptive Huffman).
  • 1 — RLE90. (Shared with ARC method 3 — see the RLE90 question in the ARC issue.)
  • Lower priority: 3 (Huffman), 2 (LZW/Compress), 8 (MW).

StuffIt 5 (StuffIt (c)1997… magic) is an entirely different, largely proprietary container; fstool currently routes it to a detection-only fallback. Its main entropy stage is the Arsenic range coder. This is lowest priority / may be declined — happy to leave SIT5 unsupported.

API: Decoder-shaped, decode-only, driven via DecoderReader with the fork's known uncompressed size from the entry header.

Reference: The Unarchiver / libxad XADStuffIt* parsers (clean-room RE; decode-only there too).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions