Omnizip Suite
Suite Overview
Excavate is part of the Omnizip family of pure Ruby compression libraries:
| Project | Purpose |
|---|---|
Omnizip | Comprehensive compression library |
Cabriolet | Microsoft compression formats |
Excavate | Unified extraction interface |
Omnizip
Omnizip is a comprehensive compression library supporting multiple formats.
Supported Formats
-
7z - 7-Zip format
-
ZIP - Standard ZIP format
-
RAR4/5 - RAR archives
-
TAR - Unix tape archive
-
ISO - ISO disk images
-
XAR - eXtensible ARchive
-
RPM - Red Hat packages
-
OLE - OLE compound documents
-
XZ - LZMA compression
-
GZIP - GNU ZIP
-
BZIP2 - Bzip2 compression
-
CPIO - Copy In/Out
-
PAR2 - Parity archives
Cabriolet
Cabriolet specializes in Microsoft compression formats.
Excavate
Excavate builds on Omnizip and Cabriolet to provide:
-
Unified extraction interface
-
Recursive extraction
-
Format-agnostic API
-
CLI tool
How They Work Together
┌─────────────────────────────────────────────────────┐
│ Excavate │
│ (Unified Extraction API) │
└───────────────────────┬─────────────────────────────┘
│
┌─────────────┴─────────────┐
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────────┐
│ Omnizip │ │ Cabriolet │
│ (ZIP, 7z, TAR, etc) │ │ (CAB, CHM, etc) │
└─────────────────────┘ └─────────────────────┘Using Multiple Libraries
You can use Excavate alongside Omnizip or Cabriolet:
require 'excavate'
require 'omnizip'
# Use Excavate for extraction
Excavate::Archive.new('archive.zip').extract
# Use Omnizip directly for other operations
Omnizip::Zip.compress('output.zip', files)Shared Characteristics
All Omnizip suite libraries:
-
Pure Ruby - No native dependencies
-
Cross-platform - Linux, macOS, Windows
-
Well-tested - Comprehensive test suites
-
Documented - Full API documentation
When to Use Which
-
You need to extract archives
-
Format varies or is unknown
-
Recursive extraction is needed
-
You need compression (creation)
-
Working with specific formats
-
Need advanced features
-
Working with Microsoft formats
-
Need CAB creation
-
Handling damaged archives