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).
fstool now has a read-only StuffIt reader (
src/fs/archive/sit.rs, behind thesitfeature) for the classicSIT!container. It decodes data-fork method 0 (store) today; the compressed methods need codecs here and currently read as a cleanUnsupported.Classic
SIT!methods needed (per fork):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 viaDecoderReaderwith the fork's known uncompressed size from the entry header.Reference: The Unarchiver / libxad
XADStuffIt*parsers (clean-room RE; decode-only there too).