CAB (Microsoft Cabinet) Format Guide

Available Conversions

About CAB (Microsoft Cabinet) Format

CAB (Cabinet) is a proprietary archive format developed by Microsoft, introduced with Windows 95 in 1995. Cabinet files are the internal packaging format for Windows Installer (MSI) packages, Windows Update files, device driver packages, and Microsoft Office installation media. The format supports three compression algorithms: MSZIP (based on DEFLATE), LZX (a more advanced algorithm optimized for executable code), and Quantum (rarely used). CAB files can span multiple cabinet volumes for distributing large software packages across multiple disks or download segments.

History of CAB

Microsoft developed the Cabinet format (originally called "Diamond") for the Windows 95 release in 1995 as a replacement for the earlier .LZH-based compression used in DOS-era installations. The format was designed specifically for software deployment, with features like multi-cabinet spanning (for floppy disk distribution) and code signing support. Cabinet files became deeply integrated into the Windows ecosystem through the Windows Installer (MSI) framework introduced with Windows 2000, which uses CAB as its internal packaging format. The Cabinet SDK was made available to third-party developers, and the format was used in Internet Explorer for ActiveX component distribution. Today, while newer packaging formats like MSIX and AppX are gaining adoption, CAB remains essential for Windows Update, driver packages, and legacy MSI installers.

Key Features and Uses

The Cabinet format is optimized for software deployment rather than general-purpose archiving. Its LZX compression algorithm is particularly effective on executable code, achieving excellent ratios on DLLs and EXEs. CAB supports digital signatures through reserved header space, enabling code signing verification during installation. The multi-cabinet spanning feature allows large installations to be split across multiple .cab files with automatic continuation. CAB files are commonly found inside MSI installers (accessible via 7-Zip), in the Windows Update cache (C:\Windows\SoftwareDistribution), and in device driver packages (.inf + .cab). On Linux, the cabextract utility and 7-Zip (p7zip) can extract CAB contents, while the libmspack library provides programmatic access.

Common Applications

CAB is used throughout the Windows ecosystem for software distribution: Windows Installer (MSI) packages embed one or more CAB files containing the actual application files; Windows Update distributes system patches as CAB files; hardware manufacturers package device drivers in CAB format for distribution through Windows Update and driver package installers; Microsoft Office and Visual Studio installations use CAB for their setup media; and ActiveX/COM components are distributed as signed CAB files for Internet Explorer installation. Outside of Microsoft, WinZip and 7-Zip both support CAB extraction, and the open-source cabextract tool provides Linux/macOS access to CAB archives.

Advantages and Disadvantages

Advantages

  • Windows Integration: Native support in Windows Installer and Update
  • LZX Compression: Excellent ratios on executable code
  • Multi-Cabinet: Spanning across multiple files for large distributions
  • Code Signing: Built-in support for digital signatures
  • Proven: 30+ years of production use in Windows
  • Block Compression: Efficient handling of similar files
  • SDK Available: Microsoft Cabinet SDK for developers
  • Cross-Platform Extract: cabextract and 7-Zip on Linux/macOS
  • Folder Hierarchy: Full directory structure preservation

Disadvantages

  • Windows-Centric: Limited support and tooling outside Windows
  • No Encryption: No built-in password protection
  • Proprietary: Controlled by Microsoft, limited documentation
  • Size Limit: 2 GB maximum per cabinet file
  • No Random Access: Sequential extraction only
  • Legacy Format: Being replaced by MSIX/AppX for modern apps
  • Creation Tools: Limited open-source tools for creating CAB files
  • No Recovery: No error correction or repair capability