rust-thanos
删除未使用的区块,让世界更小、更流畅。
高效的 Minecraft Java 世界优化工具,Rust 版 OrzMCBackup。检测并清理未被使用的区块、压缩世界体积;merge 命令可将优化后的世界安全合并回完整备份。
特性
- ·智能区块检测 — InhabitedTime 阈值、强加载区块与 keep-range 多通道判定取并集
- ·多压缩格式 — RAW / ZLIB / GZIP / LZ4 Block,含校验
- ·数据安全 — 损坏区块安全保留,绝不丢数据;解压上限防炸弹
- ·merge 合并恢复 — 按区块槽合并回完整备份,entities / poi 锁步
- ·跨平台 — macOS / Linux / Windows × arm64 / x86_64 独立二进制
- ·脚本友好 — JSON / CSV / Text 报告,--strict 退出码,--dry-run 演练
快速开始
Homebrew
# 添加私有源并安装 $ brew tap orzgeeker/core && brew install rust-thanos
从源码构建
$ git clone https://github.com/OrzMC/rust-thanos.git $ cd rust-thanos && cargo build --release
下载预编译二进制
# macOS / Linux (.tar.gz) 与 Windows (.zip),arm64 / x86_64 # 见 https://github.com/OrzMC/rust-thanos/releases
用法
# 优化世界:裁剪为只剩在用区块 $ rust-thanos backup /path/to/world /path/to/backup -t 600 # 合并恢复:把优化后的世界合回完整备份 $ rust-thanos merge /path/to/world /path/to/backup /path/to/restored
真实数据基准
在 17.4 GiB、3,162,906 区块的真实 Minecraft 服务器世界上实测(WSL 2 / 12 逻辑核)。backup 以不同 InhabitedTime 阈值裁剪,merge 将优化世界合并回完整备份验证往返恢复。完整报告见 docs/benchmark.md。
88.3%
体积缩减(-t 300)
33,204
峰值处理吞吐 chunks/s
~24 MiB
常驻内存 RSS(处理 17.4 GiB)
0
六档运行错误总数
输出体积随阈值变化(GiB)
| 阈值 | 保留区块 | 移除区块 | 输出体积 | 缩减率 | 墙钟 | 吞吐 | 错误 |
|---|---|---|---|---|---|---|---|
-t 0 | 908,260 | 2,254,646 | 6.38 GiB | 63.2% | 2:24 | 22,018/s | 0 |
-t 60 | 276,381 | 2,886,525 | 2.41 GiB | 86.1% | 1:43 | 30,819/s | 0 |
-t 120 | 250,054 | 2,912,852 | 2.18 GiB | 87.4% | 1:42 | 30,941/s | 0 |
-t 180 | 240,290 | 2,922,616 | 2.10 GiB | 87.9% | 1:35 | 33,204/s | 0 |
-t 240 | 235,262 | 2,927,644 | 2.05 GiB | 88.2% | 1:49 | 28,927/s | 0 |
-t 300 | 232,067 | 2,930,839 | 2.03 GiB | 88.3% | 1:46 | 29,853/s | 0 |
正确性验证(全部通过)
- ✓ 六档输出均为输入世界的严格子集,0 越界文件
- ✓
merge往返:region 数据 10,713/10,713 完整保留,0 错误 - ✓
--dry-run计数与真实运行一致,零写入 - ✓ 保留区块随阈值严格单调(908,260 → 232,067),重复运行逐字节一致
环境:Intel Core i7-9750H 6C/12T · 15 GiB 内存 · WSL 2(Ubuntu 26.04,ext4)· rust-thanos v0.0.3 release。数据为真实服务器世界 world/(21,688 个 MCA)与其官方优化备份 world_backup/(3,415 个 MCA,真值基准)。
平台支持
| 平台 | 格式 | 架构 |
|---|---|---|
| macOS | .tar.gz | arm64 · x86_64 |
| Linux | .tar.gz | arm64 · x86_64 |
| Windows | .zip | arm64 · x86_64(原生 MSVC) |