How mcmilk/7-zip works
This is the source tree for 7-Zip: a multi-format archive manager and compression toolkit with console, file-manager, plugin, and self-extracting front ends. The principal workflow is opening an archive, inspecting its contents, then extracting them; archive creation and updates are another major stage. Format handlers interpret archive metadata and invoke codecs for packed data. The README only describes this repository’s history and discontinuation, so product capabilities are inferred from the tree; connections beyond the supplied excerpts are shown only where the source structure or excerpt supports them.
Main entry points: ArchiveExports.cpp Format registry · Main.cpp Console commands · Update.cpp Create and update · ZipHandler.cpp ZIP handler
Components 22
User interfaces
- Console commands
CPP/7zip/UI/Console/Main.cpp - File manager
CPP/7zip/UI/FileManager/App.cpp - FAR plugin
CPP/7zip/UI/Far/Plugin.cpp - SFX extractor
CPP/7zip/Bundles/SFXSetup/ExtractEngine.cpp
Archive operations
- Open archive
CPP/7zip/UI/Common/OpenArchive.cpp - Extract workflow
CPP/7zip/UI/Common/Extract.cpp - Create and update
CPP/7zip/UI/Common/Update.cpp - Archive agent
CPP/7zip/UI/Agent/Agent.cpp
Format handlers
- 7z handler
CPP/7zip/Archive/7z/7zHandler.cpp - ZIP handler
CPP/7zip/Archive/Zip/ZipHandler.cpp - CAB handler
CPP/7zip/Archive/Cab/CabHandler.cpp - RAR handler
CPP/7zip/Archive/Rar/Rar5Handler.cpp - WIM handler
CPP/7zip/Archive/Wim/WimHandlerOut.cpp - Format registry
CPP/7zip/Archive/ArchiveExports.cpp
Compression and crypto
- Coder factory
CPP/7zip/Common/CreateCoder.cpp - Compression codecs
CPP/7zip/Compress/LzmaDecoder.cpp - Archive crypto
CPP/7zip/Crypto/7zAes.cpp
Runtime utilities
- Stream utilities
CPP/7zip/Common/StreamUtils.cpp - C codec core
C/7zDec.c
Other components
- CLI user
- GUI user
- Filesystem
Connections 25
- CLI user → Console commands: issues commands
- GUI user → File manager: uses
- GUI user → FAR plugin: uses
- Console commands → Open archive: opens archives
- Console commands → Extract workflow: requests extraction
- Console commands → Create and update: requests updates
- File manager → Archive agent: delegates archive work
- FAR plugin → Archive agent: delegates archive work
- SFX extractor → Open archive: opens archive
- SFX extractor → Filesystem: creates destination and extracts
- Open archive → Format registry: selects format handler
- Format registry → 7z handler: dispatches
- Format registry → ZIP handler: dispatches
- Format registry → CAB handler: dispatches
- Format registry → RAR handler: dispatches
- Format registry → WIM handler: dispatches
- 7z handler → Coder factory: requests coders
- ZIP handler → Coder factory: requests coders
- Coder factory → Compression codecs: creates coder
- ZIP handler → Archive crypto: uses decryption
- Extract workflow → Filesystem: writes extracted files
- Create and update → Filesystem: reads input files
- Create and update → 7z handler: writes 7z archives
- Create and update → WIM handler: writes WIM archives
- Compression codecs → C codec core: uses C implementations