Architecture
Topics
| Topic | Description |
|---|---|
OOP principles used | |
The extractor base class | |
How detection works | |
Adding new extractors | |
Architecture diagrams |
High-Level Architecture
┌─────────────────────────────────────────────────────────────┐
│ Excavate::Archive │
│ (Facade providing unified interface) │
└───────────────────────────┬─────────────────────────────────┘
│
│ delegates to
│
┌───────────────────────┴───────────────────────┐
│ Format Type Registry │
│ (TYPES hash mapping) │
└───────────────────────┬───────────────────────┘
│
│ instantiates
│
┌───────────────────────┴───────────────────────┐
│ Extractors::Extractor │
│ (Abstract base class) │
└───────────────────────────┬───────────────────────┘
│
│ specialized by
│
┌───────┬───────┬───────┼───────┬───────┬───────┐
│ │ │ │ │ │ │
Cab Cpio Gzip Xar Zip SevenZip ...
│ │ │ │ │ │
└───────┴───────┴───────┴───────┴───────┴───────┘
Powered by Omnizip & Cabriolet