Format Guides
Purpose
This section provides comprehensive guides for each of the 7 Microsoft compression formats supported by Cabriolet. Each format has unique characteristics and use cases documented here.
Concepts
Microsoft has developed multiple compression formats over the years, each designed for specific purposes. Understanding these formats helps you choose the right tool for your task and work effectively with existing archives.
Supported formats
CAB - Microsoft cabinet
-
Purpose: General-purpose archive format for software distribution
-
Use Cases: Windows installers, software packages, system files
-
Compression: Multiple algorithms (MSZIP, LZX, Quantum)
-
Features: Multi-file, multi-folder, multi-part support
CHM - Compiled HTML help
-
Purpose: Windows help documentation format
-
Use Cases: Application help files, technical documentation
-
Compression: LZX compression
-
Features: Indexed HTML content, full-text search
SZDD - Single-file LZSS
-
Purpose: Simple single-file compression
-
Use Cases: Compressed Windows system files (*.ex_, *.dl_)
-
Compression: LZSS algorithm
-
Features: Simple format, fast decompression
KWAJ - KWAJ compression
-
Purpose: Microsoft Setup compression format
-
Use Cases: Legacy installers, setup files
-
Compression: LZSS or MSZIP
-
Features: Single-file compression with metadata
HLP - Windows help
-
Purpose: Legacy Windows help system
-
Use Cases: Windows 3.x/9x help files
-
Compression: LZ77 variant
-
Features: Topic-based help, hyperlinks
LIT - Microsoft reader
-
Purpose: eBook format for Microsoft Reader
-
Use Cases: Digital books, electronic publications
-
Compression: DES encryption + compression
-
Features: DRM support, annotations
Format Comparison
| Format | Primary Use | Compression | Complexity |
|---|---|---|---|
CAB | Software distribution | Multiple | Medium |
CHM | Help documentation | LZX | Medium |
SZDD | Single files | LZSS | Low |
KWAJ | Setup files | LZSS/MSZIP | Low |
HLP | Legacy help | LZ77 | Medium |
LIT | eBooks | DES + LZX | High |
OAB | Address books | LZX | Medium |
Choosing a Format
Select the appropriate format based on your use case:
For software distribution:
-
Use CAB - Industry standard, multi-file support
For documentation:
-
Use CHM - Built-in search, indexed content
For individual file compression:
-
Use SZDD - Simple, fast, Windows compatible
For legacy support:
Common Operations by Format
CHM files
cabriolet list help.chm
cabriolet extract help.chm output/
cabriolet info help.chmThese unified commands automatically detect the CHM format. For explicit format specification, use --format chm.
Format Detection
Cabriolet automatically detects formats:
require 'cabriolet'
# Automatically detect and decompress
Cabriolet.decompress('unknown.bin', 'output/')Detection is based on:
-
File signatures (magic bytes)
-
File extension hints
-
Header structure analysis
Next steps
-
Choose your format and read its detailed guide
-
Learn about compression algorithms
-
Explore basic operations