Creating Archives Guide
Concepts
Archive creation compresses files into a single archive. Choose the appropriate format and compression algorithm based on your needs.
By Format
CAB files
# Default MSZIP compression
cabriolet create archive.cab file1.txt file2.txt
# LZX for maximum compression
cabriolet create --compression=lzx installer.cab files/
# Uncompressed
cabriolet create --compression=none media.cab *.jpgRuby API:
compressor = Cabriolet::CAB::Compressor.new(compression: :mszip)
compressor.add_file('file1.txt')
compressor.add_file('file2.txt')
compressor.write('archive.cab')CHM files
# Default window size
cabriolet chm-create help.chm index.html style.css
# Large window for better compression
cabriolet chm-create --window-bits=21 help.chm docs/*.htmlRuby API:
compressor = Cabriolet::CHM::Compressor.new
compressor.add_file('index.html', '/index.html', section: :compressed)
compressor.add_file('logo.png', '/logo.png', section: :uncompressed)
compressor.generate('help.chm', window_bits: 16)SZDD files
# Auto-generate output name
cabriolet compress file.txt
# Specify output
cabriolet compress file.txt file.tx_
# QBasic format
cabriolet compress --format=qbasic program.bas program.ba_Ruby API:
compressor = Cabriolet::SZDD::Compressor.new
compressor.compress('file.txt', 'file.tx_', format: :normal)KWAJ Files
# Default SZDD compression
cabriolet kwaj-compress setup.exe setup.kwj
# MSZIP compression with metadata
cabriolet kwaj-compress --compression=mszip --filename=setup.exe \
--extra-data="Version 1.0" setup.exe setup.kwjRuby API:
compressor = Cabriolet::KWAJ::Compressor.new
compressor.compress('setup.exe', 'setup.kwj',
compression: :mszip,
filename: 'setup.exe',
include_length: true
)HLP Files
cabriolet hlp-create help.hlp system.dat topic.dat phrases.datRuby API:
compressor = Cabriolet::HLP::Compressor.new
compressor.add_file('system.dat', '|SYSTEM', compress: true)
compressor.add_file('topic.dat', '|TOPIC', compress: true)
compressor.generate('help.hlp')Compression Selection
Choose algorithm based on use case:
| Use Case | Recommended Algorithm |
|---|---|
Software distribution | LZX (maximum compression) |
General archives | MSZIP (balanced) |
Speed critical | None or LZSS |
Pre-compressed files | None |
Text/HTML | MSZIP or LZX |