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

OAB - Offline address book

  • Purpose: Exchange/Outlook offline data

  • Use Cases: Email address books, contact lists

  • Compression: LZX compression

  • Features: Incremental updates

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:

  • KWAJ - Old installers

  • HLP - Windows 3.x/9x help

  • LIT - Microsoft Reader books

  • OAB - Exchange data

Common Operations by Format

CAB files

cabriolet list archive.cab
cabriolet extract archive.cab
cabriolet create new.cab files/

CHM files

cabriolet list help.chm
cabriolet extract help.chm output/
cabriolet info help.chm

These unified commands automatically detect the CHM format. For explicit format specification, use --format chm.

SZDD files

cabriolet extract notepad.ex_
cabriolet create program.ex_ notepad.exe
cabriolet info file.dl_

These unified commands automatically detect the SZDD format. For explicit format specification, use --format szdd.

Other formats

See individual format guides for specific commands and examples.

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


Table of contents