- 并行提取管线 — 真实瓶颈在文件系统元数据而非解码算法;并行文件创建 + 多流调度, 20k 文件解压 33–35k files/s,约为官方 7-Zip 命令行的 2.5 倍(完整数据见基准数据)
- 伪装压缩包识别与解压 — MP4/JPG/PDF 伪装或内嵌的 zip/rar/7z 自动识别提取
(官方 7-Zip 无法处理该场景),
nekozip detect <file>单独查询 - GBK 文件名抢救 — Windows 打包的中文压缩包不再乱码:双解码 + CJK 评分自动检测,列表内高亮
- 加密 — WinZip AES-256/192/128(AE-1/AE-2)与传统 ZipCrypto 解密,GUI 密码提示
- 分卷 — 7z
.001与 RARpartNN.rar,拿到任意分卷自动回溯第一卷 - 选择性解压 — 按条目名集合提取,祖先目录自动展开;覆盖前冲突检测 (覆盖 / 跳过已存在,策略可持久化)
- 原生创建 — zip(libdeflate,store 回退,zip64)/ tar / tar.gz
- 覆盖确认 + 解压历史 + 完成通知 — 覆盖前列出冲突文件;历史记录大小与耗时
- Universal 2 — Apple Silicon 与 Intel 双架构
Releases 提供 universal NekoZIP.dmg(内置 7zz/unrar 引擎,解压无需额外安装)。
应用未做公证,首次打开可能提示「已损坏,无法打开」——修复方法见 FAQ。
拖入压缩包或 ⌘O 打开;Finder 中右键 → 服务 → 「用 NekoZIP 解压/浏览」(首次使用见 FAQ)。
命令行:
nekozip list archive.zip # 条目列表 + 编码 + 大小
nekozip enc archive.zip # 文件名编码检测报告
nekozip detect photo.mp4 # 伪装压缩包识别
nekozip x archive.zip -o out # 解压(--password --trash-source 等)
nekozip c out.zip mydir/ # 创建 zip
nekozip bench archive.zip # 基准测试测试环境:Apple M5 Pro(6 性能核 + 12 能效核,24 GB)· macOS 26.6.2 ·
APFS · 对手为官方 7-Zip 7zz 26.02 arm64(版本与参数冻结)。
语料:20,000 × 4 KB UTF-8 文本文件(78 MB,deflate 压缩率 3.3×),缓存热态,多轮取区间。
| 场景 | NekoZIP 0.9.0 | 7zz 26.02 | 倍数 |
|---|---|---|---|
| zip deflate 提取(20k 文件,热态) | 33.0–34.9k files/s | 12.6k files/s | 2.6–2.8× |
同上,冷缓存(sudo purge 后首轮) |
33.3k files/s | — | ≥ 2× |
| 同上,100k 文件规模 | 33.0–35.9k files/s | 13.3k files/s | 2.5–2.7× |
| tar.gz 成员级直解(20k 文件) | 28.3–34.2k files/s | 两步走 | — |
| 7z 提取(vendored C 解码器) | 12.9–13.6k files/s | 11.3k files/s(子进程) | 1.1–1.2× |
解码吞吐(256 MB 单流):
| 实现 | 速率 |
|---|---|
| libdeflate(NekoZIP 采用) | 3,866 MB/s |
| Apple Compression | 1,671 MB/s |
| 7zz deflate 路径 | 691 MB/s |
归因说明:瓶颈在文件系统元数据操作(每文件 open/create/close)而非解码—— 任何 codec 下 20k 小文件解压均卡在 ~13–14k files/s。NekoZIP 的收益来自 并行文件创建管线 + 多流调度 + 更快的 deflate 路径,解码层物理上限(单流串行)不变。
复现:spikes 方法与逐项数据见仓库内 docs/BENCHMARKS.md;
单包测试:nekozip bench <archive> --runs 3。
git clone https://github.com/SakuraRed/NekoZip.git
cd NekoZip
swift build -c release
.build/release/nekozip --help
swift test # 73 个单元测试
swift build -c release --arch arm64 --arch x86_64 # universal
./scripts/make-app.sh && open build/NekoZIP.app # .app(内嵌扩展与引擎)依赖:Xcode 15+。libdeflate 1.26(MIT)、liblzma 5.8.3、libzstd 1.5.7(BSD)、
7-Zip 26.02 C 解码器(LGPL)已全部内嵌 vendor/,无第三方包管理器依赖。
提示「已损坏,无法打开」/ 无法验证开发者
应用未做 Apple 公证。任选其一:
sudo xattr -rd com.apple.quarantine /Applications/NekoZIP.app或:系统设置 → 隐私与安全性 → 仍要打开。
右键菜单没有 NekoZIP?
服务菜单(无需证书):先启动 NekoZIP 一次,再执行
/System/Library/CoreServices/pbs -flush 刷新服务表;
之后 Finder 中右键 → 服务(快速操作)→ 用 NekoZIP 解压/浏览。
Finder 扩展(完整右键 + Quick Look 覆盖)需要 Developer ID 签名构建—— 系统拒收 ad-hoc 签名的扩展扩展进程。拥有证书后:
SIGN_IDENTITY="Developer ID Application: 你的名字 (TEAMID)" ./scripts/make-app.sh然后 系统设置 → 登录项与扩展 → Finder 扩展 / 快速查看 中勾选 NekoZIP。
反复重装导致扩展列表残留旧版本:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain user为什么解压出的内容比源包大?
正常——源包存储的是压缩后数据。基准数据页同时解释了「为什么快」: 瓶颈在文件系统元数据而非算法。
Native macOS archiver (SwiftUI app + CLI). 20k-file extraction at 33–35k files/s (~2.5× official 7-Zip CLI, cold-cache verified), disguised-archive detection (MP4/JPG/PDF hiding zip/rar/7z — 7-Zip can't extract these), GBK filename rescue, AES-256/ZipCrypto, split volumes, selective extraction, overwrite/skip policy, extraction history. GPL-3.0. Xcode-only dependency; all codec sources vendored.
Download v0.9.0-beta · Benchmark data · Damaged-app fix
如果 NekoZIP 帮到了你,欢迎请作者喝杯猫猫咖啡:
GPL-3.0。捆绑组件遵循各自许可:7-Zip(LGPL + unRAR 限制,仅解压)、 libdeflate(MIT)、liblzma(公有领域)、libzstd(BSD)。
