mcmilk/7-Zip-zstd
GitHub: mcmilk/7-Zip-zstd
7-Zip 的增强版本,通过集成 Zstandard、Brotli、LZ4 等多种现代压缩算法,为用户提供比原版更丰富的压缩选项。
Stars: 7051 | Forks: 384
# README
这是 [7-Zip] ZS 的 Github 页面,提供了对额外 Codec 的支持。其使用的库位于此处:[多线程库](https://github.com/mcmilk/zstdmt)
你可以通过两种方式进行安装:
1. 包含 GUI 内附加功能以及改进的 Explorer 上下文菜单的完整安装程序
2. 仅安装 codec 插件到现有的 [7-Zip] 安装中(无 GUI 更改,也无额外的 Hasher)
# 状态
[](https://github.com/mcmilk/7-Zip-zstd/releases)
[](https://www.paypal.me/TinoReichardt)
## Codec 概览
1. [Zstandard] v1.5.7 是一种实时压缩算法,提供高压缩率。它提供了非常广泛的压缩/速度权衡,并由非常快速的解码器作为支持。
- 级别:1..22
2. [Brotli] v.1.2.0 是一种通用的无损压缩算法,它结合使用了 LZ77 算法的现代变体、Huffman 编码和二阶上下文建模来压缩数据,其压缩率可与目前可用的最佳通用压缩方法相媲美。它的速度与 deflate 相似,但提供了更密集的压缩。
- 级别:0..11
3. [LZ4] v1.10.0 是一种无损压缩算法,可提供每核 400 MB/s(0.16 字节/周期)的压缩速度。它具有极快的解码器,速度可达每核数 GB/s(0.71 字节/周期)。它还提供了一种名为 LZ4_HC 的高压缩衍生版本,通过牺牲可自定义的 CPU 时间来换取压缩率。
- 级别:1..12
4. [LZ5] v1.5 是对 LZ4 的修改,旨在以更慢的压缩和解压缩速度为代价获得更好的压缩率。它现在已被 [Lizard] 取代。
- 级别:1..15
5. [Lizard] v2.1 是一种具有快速解压缩功能的高效压缩器。它实现了与 zip/zlib 和 zstd/brotli(在低和中等压缩级别下)相媲美的压缩率,解压速度达到 1000 MB/s 或更快。
- 级别 10..19 (fastLZ4) 旨在提供比 LZ4 高约 10% 的解压缩速度
- 级别 20..29 (LIZv1) 旨在保持 75% 解压速度的同时,提供比 LZ4 更好的压缩率
- 级别 30..39 (fastLZ4 + Huffman) 为 fastLZ4 添加了 Huffman 编码
- 级别 40..49 (LIZv1 + Huffman) 提供了最佳压缩率,可与 zlib 以及低级别的 zstd/brotli 相媲美,但解压速度更快
6. [Fast LZMA2] v1.0.1 是一种 LZMA2 压缩算法,在级别 5 及以上时比普通 LZMA2 快 20% 到 100%,但压缩率略低。它使用了并行缓冲基数匹配器以及来自 Zstandard 的一些优化。与标准 LZMA2 相比,该 codec 每个线程使用的额外内存要少得多。
- 级别:1..9
### 7-Zip ZS CLI 变体
7z 和 7zz 提供了基本相同的核心 7‑Zip 功能,但它们的构建/分发方式
有所不同(支持插件 vs. 独立版),这可能会影响可用的格式/codec。
| 二进制文件 | 描述 |
|--------|-------------|
| `7z` | 完整的 7‑Zip 命令行工具,通过 7z.so 加载其模块/codec。 |
| `7zz` | 用于 Linux/macOS 包的官方独立 7‑Zip 二进制文件 - 无法通过 7z.so 使用外部插件。 |
| `7za` | 独立可执行文件,支持的归档格式比 `7z` 少。(精简版 + LZ4 和 Hash) |
| `7zr` | 专注于 7z 格式的精简“轻量级”独立可执行文件。(FLZMA2, Zstd) |
## 7-Zip Zstandard 版(完整安装,包含 GUI 和 Explorer 集成)
### 安装(通过安装程序)
1. 从这里下载安装程序 [7-Zip ZS Releases](https://github.com/mcmilk/7-Zip-zstd/releases)
2. 像安装默认的 [7-Zip] 一样安装它
3. 你可以通过此命令检查 [7-Zip] 是否可以处理 [Zstandard] 或其他 codec:`7z.exe i`
输出应该如下所示:
```
7-Zip 26.01 ZS v1.5.7 (x64) : Copyright (c) 1999- Igor Pavlov, 2016- Tino Reichardt, 2022- Sergey G. Brester : 2026-05-30
Libs:
0 c:\Program Files\7-Zip-Zstandard\7z.dll
1 C:\Program Files\7-Zip-Zstandard\Codecs\Iso7z.64.dll
Formats:
...
0 CK xz xz txz (.tar) FD 7 z X Z 00
0 Z z taz (.tar) 1F 9D
0 CK zstd zst zstd tzst (.tar) tzstd (.tar) 0 x F D 2 F B 5 2 5 . . 0 x F D 2 F B 5 2 8 00
0 C F 7z 7z 7 z BC AF ' 1C
0 F Cab cab M S C F 00 00 00 00
...
Codecs:
0 4ED 303011B BCJ2
0 EDF 3030103 BCJ
0 EDF 3030205 PPC
0 EDF 3030401 IA64
0 EDF 3030501 ARM
0 EDF 3030701 ARMT
0 EDF 3030805 SPARC
0 EDF 20302 Swap2
0 EDF 20304 Swap4
0 ED 40202 BZip2
0 ED 0 Copy
0 ED 40109 Deflate64
0 ED 40108 Deflate
0 EDF 3 Delta
0 ED 21 LZMA2
0 ED 30101 LZMA
0 ED 30401 PPMD
0 D 40301 Rar1
0 D 40302 Rar2
0 D 40303 Rar3
0 D 40305 Rar5
0 ED 4F71102 BROTLI
0 ED 4F71104 LZ4
0 ED 4F71106 LIZARD
0 ED 4F71105 LZ5
0 ED 4F71101 ZSTD
0 ED 21 FLZMA2
0 EDF 6F10701 7zAES
0 EDF 6F00181 AES256CBC
Hashers:
0 32 202 BLAKE2sp
0 32 204 BLAKE3
0 4 1 CRC32
0 8 4 CRC64
0 16 205 MD2
0 16 206 MD4
0 16 207 MD5
0 20 201 SHA1
0 32 A SHA256
0 48 208 SHA384
0 64 209 SHA512
0 32 20A SHA3-256
0 48 20B SHA3-384
0 64 20C SHA3-512
0 4 20D XXH32
0 8 20E XXH64
```
### 我的杀毒软件 X.Y 或 Virustotal.com 说它是恶意软件/病毒
总而言之:*它不是恶意软件* - 但去追逐这些(卖假药的厂商)[https://en.wikipedia.org/wiki/Snake_oil] 不是我的工作。
具体来说:你可以自己验证,发布版本是由此 Microsoft 拥有的平台上的 GitHub Actions
实时生成的。如果真的有任何病毒,那它们也是由运行在
Microsoft 数据中心的机器生成的 😉
例如,对于发布的 `v25.01-v1.5.7-R4` 版本:
- 它是带有 `v25.01-v1.5.7-R4` 标签的那个版本
- 点击 [调整 Blake3 MAX_SIMD_DEGREE](https://github.com/mcmilk/7-Zip-zstd/actions/runs/20877497651)
- 滚动到 Artifacts 部分
- 所有的 windows 二进制文件都在这个 ZIP 文件中:`7-Zip ZS Release binaries.zip`
- 检查 SHA256 哈希值是否与 release 的文件相同
我建立了一个误报问题的列表 [在 issue #45 中](https://github.com/mcmilk/7-Zip-zstd/issues/451#issuecomment-3733009809)。
请不要打开新的 issue。相反,请联系杀毒软件供应商并要求他们删除这个[误报](https://en.wikipedia.org/wiki/False_positives_and_false_negatives)。
### 完整安装的用法与功能
- 在 [7-Zip] 容器格式内进行 [Brotli]、[Lizard]、[LZ4]、[LZ5] 和 [Zstandard] 的压缩与解压缩
- 压缩和解压缩 [Brotli] (`.br`)、[Lizard] (`.liz`)、[LZ4] (`.lz4`)、[LZ5] (`.lz5`) 和 [Zstandard] (`.zst`) 文件
- 处理使用 [Zstandard] 压缩的 ZIP 文件
- 包含 [lzip] 解压缩支持,补丁来自:https://download.savannah.gnu.org/releases/lzip/7zip/
- Explorer 上下文菜单:_"添加到 xy.7z"_ 将使用上一次“添加到压缩包”对话框中的所有参数(包括:方法、级别、字典、块大小、线程和参数输入框)
- 可以处理使用 LZ4 或 Zstandard 压缩的 squashfs 文件
- 默认情况下不会保存多个历史记录设置,在[此处](https://sourceforge.net/p/sevenzip/discussion/45797/thread/dc2ac53d/?limit=25)查看有关此的一些信息,你可以通过 `工具->选项->设置` 恢复原始的 7-Zip 行为
- 可以计算以下哈希值:CRC32、CRC64、MD2、MD4、MD5、SHA1、SHA256、SHA384、SHA512、SHA3-256、SHA3-384、SHA3-512、XXH32、XXH64、BLAKE2sp、BLAKE3(小写或大写)
```
7z a archiv.7z -m0=zstd -mx0 Zstandard Fastest Mode, without BCJ preprocessor
7z a archiv.7z -m0=zstd -mx1 Zstandard Fast mode, with BCJ preprocessor on executables
7z a archiv.7z -m0=zstd -mx.. ...
7z a archiv.7z -m0=zstd -mx21 Zstandard 2nd Slowest Mode, with BCJ preprocessor on executables
7z a archiv.7z -m0=zstd -mx22 Zstandard Ultra Mode, with BCJ preprocessor on executables
7z a archiv.7z -m0=lz4 -mx0 LZ4 Fastest Mode, without BCJ preprocessor
7z a archiv.7z -m0=lz4 -mx1 LZ4 Fast mode, with BCJ preprocessor on executables
7z a archiv.7z -m0=lz4 -mx.. ...
7z a archiv.7z -m0=lz4 -mx12 LZ4 Ultra Mode, with BCJ preprocessor on executables
7z a archiv.7z -m0=lz5 -mx0 LZ5 Version 1.5 Fastest Mode, without BCJ preprocessor
7z a archiv.7z -m0=lz5 -mx1 LZ5 Version 1.5 Fast mode, with BCJ preprocessor on executables
7z a archiv.7z -m0=lz5 -mx.. ...
7z a archiv.7z -m0=lz5 -mx16 LZ5 Version 1.5 Ultra Mode, with BCJ preprocessor on executables
7z a archiv.7z -m0=flzma2 -mx1 Fast LZMA2 Fastest mode, with BCJ preprocessor on executables
7z a archiv.7z -m0=flzma2 -mx.. ...
7z a archiv.7z -m0=flzma2 -mx9 Fast LZMA2 Ultra Mode, with BCJ preprocessor on executables
7z x -so test.tar.zst | 7z l -si -ttar
-> show contents of zstd compressed tar archive test.tar.zst
7z x -so test.tar.lz | 7z l -si -ttar
-> show contents of lzip compressed tar archive test.tar.lz
```





## 用于 Mainline 7-Zip 的 Zstandard codec 插件
### 安装(通过插件)
1. 从这里下载 `Codecs.7z` 压缩包 [7-Zip ZS Releases](https://github.com/mcmilk/7-Zip-zstd/releases),该压缩包包含与 [7-Zip] Mainline 版本兼容的二进制文件
2. 创建一个名为 `Codecs` 的新目录,并根据你的 [7-Zip] 安装位置将 zstd-x32.dll 或 zstd-x64.dll 放入其中
- 通常,x32 版本应放置于:"C:\Program Files (x86)\7-Zip\Codecs"
- x64 版本应放置于:"C:\Program Files\7-Zip\Codecs"
3. 你也可以直接替换 `C:\Program Files (x86)\7-Zip` 中的 `7z.dll`
4. 然后你可以通过以下命令检查 dll 是否安装正确:`7z.exe i`
输出应该如下所示:
```
7-Zip 21.03 (x64) : Copyright (c) 1999-2021 Igor Pavlov : 2021-05-06
Libs:
0 C:\Program Files\7-Zip\7z.dll
Libs:
0 c:\Program Files\7-Zip\7z.dll
1 c:\Program Files\7-Zip\Codecs\brotli-x64.dll
2 c:\Program Files\7-Zip\Codecs\flzma2-x64.dll
3 c:\Program Files\7-Zip\Codecs\lizard-x64.dll
4 c:\Program Files\7-Zip\Codecs\lz4-x64.dll
5 c:\Program Files\7-Zip\Codecs\lz5-x64.dll
6 c:\Program Files\7-Zip\Codecs\zstd-x64.dll
...
Codecs:
0 4ED 303011B BCJ2
0 ED 3030103 BCJ
0 ED 3030205 PPC
0 ED 3030401 IA64
0 ED 3030501 ARM
0 ED 3030701 ARMT
0 ED 3030805 SPARC
0 ED 20302 Swap2
0 ED 20304 Swap4
0 ED 40202 BZip2
0 ED 0 Copy
0 ED 40109 Deflate64
0 ED 40108 Deflate
0 ED 3 Delta
0 ED 21 LZMA2
0 ED 30101 LZMA
0 ED 30401 PPMD
0 D 40301 Rar1
0 D 40302 Rar2
0 D 40303 Rar3
0 D 40305 Rar5
0 ED 6F10701 7zAES
0 ED 6F00181 AES256CBC
1 ED 4F71102 BROTLI
2 ED 21 FLZMA2
3 ED 4F71106 LIZARD
4 ED 4F71104 LZ4
5 ED 4F71105 LZ5
6 ED 4F71101 ZSTD
```
### 用法(codec 插件)
- 在 7-Zip 容器格式内进行 [Brotli]、[Fast LZMA2]、[Lizard]、[LZ4]、[LZ5] 和 [Zstandard] 的压缩与解压缩
- 你只能创建 `.7z` 文件,像 `.lz4`、`.lz5` 和 `.zst` 这样的文件不受插件支持
- 当压缩二进制文件(*.exe、*.dll)时,如果仅使用插件 dll,你必须通过 `-m0=bcj` 显式禁用 bcj2 过滤器
- 因此用法应该如下所示:
```
7z a archiv.7z -m0=bcj -m1=zstd -mx1 Fast mode, with BCJ preprocessor on executables
7z a archiv.7z -m0=bcj -m1=zstd -mx.. ...
7z a archiv.7z -m0=bcj -m1=zstd -mx21 2nd Slowest Mode, with BCJ preprocessor on executables
7z a archiv.7z -m0=bcj -m1=zstd -mx22 Ultra Mode, with BCJ preprocessor on executables
7z a archiv.7z -m0=bcj -m1=brotli -mxN ...
7z a archiv.7z -m0=bcj -m1=lizard -mxN ...
7z a archiv.7z -m0=bcj -m1=lz4 -mxN ...
7z a archiv.7z -m0=bcj -m1=lz5 -mxN ...
7z a archiv.7z -m0=bcj -m1=flzma2 -mxN ...
```
## 用于 Total Commander 的 Codec 插件
- 下载 [TotalCmd.7z]
- 通过用新文件替换 `tc7z.dll` 和 `tc7z64.dll` 来安装它
- 你可以在[此处](https://github.com/mcmilk/7-Zip-zstd/issues/467)获取详细信息
- 7-Zip `.7z` 格式的 [Brotli]、[Lizard]、[LZ4]、[LZ5] 和 [Zstandard] 的压缩和解压缩现在应该可以在 Total Commander 中开箱即用 :-)
## 用于 Far Manager 的 Codec 插件
- 将 `C:\Program Files\7-Zip-Zstandard\7z.dll` 中的 `7z.dll` 文件复制到 `C:\Program Files\Far Manager\Plugins\ArcLite\7z.dll`
- 然后重启 Far manager - 在下次启动时,你就可以支持 7-Zip Zstandard 压缩包了 ;-)
## 基准测试
对于基准测试,我从 2026 年开始使用 Linux 二进制文件 `7zz`。
测试系统是一台空闲的 Dell PowerEdge R6615,具有以下硬件:
- **CPU:** AMD EPYC 9354P (32 核心)
- **内存:** 128 GB DDR5 (8x 16GB)
- **操作系统:** AlmaLinux 9 (x86_64)
对于测试,使用了 [Silesia 压缩语料库](https://sun.aei.polsl.pl/~sdeor/index.php?page=silesia)。
压缩测试通过为每种方法运行单线程压缩来执行:`7z a test.7z -mmt=1 -m0=MethodX`。
解压测试在全新创建的压缩包上使用:`7z t test.7z`。
内存使用情况和执行时间是通过[修改过的 GNU time](https://github.com/mcmilk/7-Zip-Benchmarking/blob/master/linux/time-1.9.tr.diff)测量的。
基准测试本身通过 [shell 脚本](https://github.com/mcmilk/7-Zip-Benchmarking/blob/master/linux/runtests.sh)执行。
结果:






## 主题
- FileManager 工具栏图标主题:Glyfz 2016,作者 AlexGal [主页](https://www.deviantart.com/alexgal23)
- 文件类型图标主题:Windows 10,作者 masamunecyrus [主页](https://www.deviantart.com/masamunecyrus)
- 由 Mr44 创建的额外文件类型图标 [主页](https://github.com/Mr4Mike4)
- 通过 ozone10 的 darkmodelib (v0.64.0) 提供深色模式支持 [主页](https://github.com/ozone10)
## 许可证与重新分发
- 与 Mainline [7-Zip] 相同,这意味着大部分代码均为 GNU LGPL v2.1-or-later
- 阅读 [COPYING](COPYING) 了解更多详情
## 链接
- [7-Zip 主页](https://www.7-zip.org/)
- [7-Zip Zstandard 主页](https://mcmilk.de/projects/7-Zip-zstd/)
- [请求包含](https://sourceforge.net/p/sevenzip/discussion/45797/thread/a7e4f3f3/)到 Mainline 7-Zip 中:
- 结果,目前不会被包含 :(
- [p7zip 主页](https://github.com/jinfeihan57/p7zip) - 适用于带有 LZ4 和 Zstandard 的 Linux 和 MacOS
## 版本信息
- 7-Zip ZS 版本 26.01 - Release 1
- [Brotli] 版本 1.2.0
- [Fast LZMA2] 版本 1.0.1
- [Lizard] 版本 2.1
- [LZ4] 版本 1.10.0
- [LZ5] 版本 1.5
- [Zstandard] 版本 1.5.7
/TR 2026-06-13
## 备注
我们计划再次使用代码签名安装程序,https://github.com/mcmilk/7-Zip-zstd/issues/473
标签:7-Zip, Brotli, Zstandard, 客户端加密, 归档工具, 文件压缩, 无损压缩算法