A reader for 7-zip archives inspired by archive/zip
.
Current status:
- Pure Go, no external libraries or binaries needed.
- Handles uncompressed headers, (
7za a -mhc=off test.7z ...
). - Handles compressed headers, (
7za a -mhc=on test.7z ...
). - Handles password-protected versions of both of the above (
7za a -mhc=on|off -mhe=on -ppassword test.7z ...
). - Handles archives split into multiple volumes, (
7za a -v100m test.7z ...
). - Handles self-extracting archives, (
7za a -sfx archive.exe ...
). - Validates CRC values as it parses the file.
- Supports ARM, BCJ, BCJ2, Brotli, Bzip2, Copy, Deflate, Delta, LZ4, LZMA, LZMA2, PPC, SPARC and Zstandard methods.
- Implements the
fs.FS
interface so you can treat an opened 7-zip archive like a filesystem.
More examples of 7-zip archives are needed to test all of the different combinations/algorithms possible.