Cabinet (file format)
Encyclopedia
In computing
, CAB is the Microsoft Windows
native compressed archive format. It supports compression and digital signing, and is used in a variety of Microsoft
installation engines: Setup API, Device Installer, AdvPack (for the installation of ActiveX
components from Internet Explorer
) and Windows Installer
.
Though Cabinet was originally called Diamond, its .CAB file extension and overall file format name comes from the word cabinet, internally used by Microsoft tools dealing with CAB files to reference such files.
The CAB file format allows for three data compression
methods:
Usually CAB files contain one or more files and can also reserve empty space in the file header for some specific uses like placing digital signatures or arbitrary data.
CAB files are also often attached to self-extracting programs where the executable program extracts the attached CAB file. CAB files are also sometimes embedded into other files. For example, MSI files usually contain one or more embedded CAB files. They can be easily recognized as Microsoft CAB files since all CAB files have a specific marker at the beginning of the file, identifying the file format. For Microsoft CAB files this marker is a four-letter tag MSCF.
Microsoft
provides three command-line tools for creation and extraction of CAB files. They are MAKECAB.EXE (included within Windows and Internet Explorer packages such as 'IEAK6.EXE', 'ie501sp2.exe', and 'orktools.msi'; also available from the SDK, see below), CABARC.EXE, and EXTRACT.EXE (included on the installation CD), respectively. Windows XP also provides the EXPAND.EXE command.
The CAB file extension is also used in many installers (InstallShield
and others), although it is not the same file format. InstallShield's files usually use zlib
for compression (see Deflate
), but their headers are not the same as in Microsoft CAB files so they are incompatible. InstallShield's format cannot be manipulated or edited with most, or possibly any, of the tools that can edit the above file formats. However there are third-party utilities, such as Unshield, that can extract this specific proprietary format.
Microsoft Publisher has a "Pack and Go" feature that bundles a publisher document together with all external links, into a CAB file with a .PUZ extension. These files are meant to be opened with a companion .EXE file which is distributed along with the .PUZ file. These files may be renamed and opened with any CAB file extraction program.
Computing
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology...
, CAB is the Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
native compressed archive format. It supports compression and digital signing, and is used in a variety of Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
installation engines: Setup API, Device Installer, AdvPack (for the installation of ActiveX
ActiveX
ActiveX is a framework for defining reusable software components in a programming language-independent way. Software applications can then be composed from one or more of these components in order to provide their functionality....
components from Internet Explorer
Internet Explorer
Windows Internet Explorer is a series of graphical web browsers developed by Microsoft and included as part of the Microsoft Windows line of operating systems, starting in 1995. It was first released as part of the add-on package Plus! for Windows 95 that year...
) and Windows Installer
Windows Installer
The Windows Installer is a software component used for the installation, maintenance, and removal of software on modern Microsoft Windows systems...
.
Though Cabinet was originally called Diamond, its .CAB file extension and overall file format name comes from the word cabinet, internally used by Microsoft tools dealing with CAB files to reference such files.
The CAB file format allows for three data compression
Data compression
In computer science and information theory, data compression, source coding or bit-rate reduction is the process of encoding information using fewer bits than the original representation would use....
methods:
- DEFLATEDEFLATEDeflate is a lossless data compression algorithm that uses a combination of the LZ77 algorithm and Huffman coding. It was originally defined by Phil Katz for version 2 of his PKZIP archiving tool and was later specified in RFC 1951....
, invented by Phil KatzPhil KatzPhillip Walter Katz was a computer programmer best known as the co-creator of the zip file format for data compression, and the author of PKZIP, a program for creating zip files which ran under DOS.- Career :...
, the author of the ZIP file format. - QuantumQuantum compressionThe Quantum compression format is a little-known data compression method created by David Stafford of Cinematronics, LLC. Rights to it were purchased by Microsoft, and Quantum is one of the possible compression methods in a CAB archive. Quantum uses an extended LZ compression algorithm.-Quantum ...
, licensed from David Stafford, the author of the Quantum archiver. - LZXLZX (algorithm)LZX is the name of an LZ77 family compression algorithm. It is also the name of a file archiver with the same name. Both were invented by Jonathan Forbes and Tomi Poutanen.-Amiga LZX:...
, invented by Jonathan Forbes and Tomi Poutanen, given to MicrosoftMicrosoftMicrosoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
when Forbes joined the company.
Usually CAB files contain one or more files and can also reserve empty space in the file header for some specific uses like placing digital signatures or arbitrary data.
CAB files are also often attached to self-extracting programs where the executable program extracts the attached CAB file. CAB files are also sometimes embedded into other files. For example, MSI files usually contain one or more embedded CAB files. They can be easily recognized as Microsoft CAB files since all CAB files have a specific marker at the beginning of the file, identifying the file format. For Microsoft CAB files this marker is a four-letter tag MSCF.
Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...
provides three command-line tools for creation and extraction of CAB files. They are MAKECAB.EXE (included within Windows and Internet Explorer packages such as 'IEAK6.EXE', 'ie501sp2.exe', and 'orktools.msi'; also available from the SDK, see below), CABARC.EXE, and EXTRACT.EXE (included on the installation CD), respectively. Windows XP also provides the EXPAND.EXE command.
The CAB file extension is also used in many installers (InstallShield
InstallShield
InstallShield is a software tool for creating installers or software packages. InstallShield is primarily used for installing software for Microsoft Windows desktop and server platforms, but it can also be used to manage software applications and packages on a variety of handheld and mobile devices...
and others), although it is not the same file format. InstallShield's files usually use zlib
Zlib
zlib is a software library used for data compression. zlib was written by Jean-Loup Gailly and Mark Adler and is an abstraction of the DEFLATE compression algorithm used in their gzip file compression program. Zlib is also a crucial component of many software platforms including Linux, Mac OS X,...
for compression (see Deflate
DEFLATE
Deflate is a lossless data compression algorithm that uses a combination of the LZ77 algorithm and Huffman coding. It was originally defined by Phil Katz for version 2 of his PKZIP archiving tool and was later specified in RFC 1951....
), but their headers are not the same as in Microsoft CAB files so they are incompatible. InstallShield's format cannot be manipulated or edited with most, or possibly any, of the tools that can edit the above file formats. However there are third-party utilities, such as Unshield, that can extract this specific proprietary format.
Microsoft Publisher has a "Pack and Go" feature that bundles a publisher document together with all external links, into a CAB file with a .PUZ extension. These files are meant to be opened with a companion .EXE file which is distributed along with the .PUZ file. These files may be renamed and opened with any CAB file extraction program.
External links
- Microsoft Cabinet SDK - updated versions of these resources are available in the Microsoft Windows SDK
- Microsoft Cabinet Format - online version of the documentation from the Microsoft Cabinet SDK
- Expand Command Reference - Windows XP Professional Product Documentation
- Cabinet Software Development Kit (CAB SDK) - downloads of all Microsoft CAB SDK versions (free)
- Diamond: A Compression and Disk Layout Tool - Microsoft documentation (saved)
- CabPack is a freeware compression program which can create cabinet files. (Last update: 28 November 2001)
- cabextract is Free Software for unpacking cabinet files in UNIX
- libmspack is an LGPL licensed, portable library for creating and extracting CAB files and other Microsoft misc. formats (creation of CAB files not implemented yet)
- LCAB - Linux cabinet file creator
- Unshield - InstallShield CAB extraction utility for UNIXs