3 个版本 (破坏性更新)

使用旧的 Rust 2015

0.3.0 2018 年 12 月 22 日
0.2.0 2018 年 12 月 19 日
0.1.0 2018 年 12 月 9 日

#1847 in 命令行工具


p3dtxt 中使用

GPL-2.0-or-later

100KB
2.5K SLoC

armake2

armake 的继任者,用 Rust 编写以提高可维护性和内存安全,旨在提供相同的特性,除了从未完成的自定义 P3D 二进制化。

状态:未实现 PAA 命令,一些选项未实现,测试中。

自 armake 以来的一些更改

  • 新的 v3 签名
  • 签名验证
  • 独立的 preprocess 命令
  • 独立的 pack 命令用于非二进制化的 PBO,而不是 build -p
  • 配置现在通过 rapify 命令进行 rapified
  • 改进配置解析错误
  • 自动截断警告以防止垃圾邮件

性能

性能应与 armake 相当或更好,具体取决于修改组成和环境。更多操作在内存中进行,以牺牲内存使用为代价减少磁盘 I/O。特别是在二进制化过程中,减少了复制次数,对于资产密集型修改或没有 SSD 的用户,可以大大加快构建速度。

BWMod 构建基准测试

armake1

Time (mean ± σ):     676.463 s ± 17.609 s    [User: 1.5 ms, System: 3.9 ms]
Range (min … max):   653.793 s … 706.619 s

armake2

Time (mean ± σ):     434.666 s ±  1.109 s    [User: 0.0 ms, System: 4.1 ms]
Range (min … max):   433.415 s … 435.526 s

加速 1.56

ACE3 构建基准测试

da7bb856f

armake1

Time (mean ± σ):     110.083 s ±  2.772 s    [User: 4.9 ms, System: 16.8 ms]
Range (min … max):   108.270 s … 113.274 s

armake2

Time (mean ± σ):     98.190 s ±  0.452 s    [User: 0.0 ms, System: 13.6 ms]
Range (min … max):   97.767 s … 98.666 s

加速 1.12

(所有基准测试均在 i5-8600K 上的 4 核 VM 上使用 4 个线程进行)

构建

构建需要 cargo,Rust 的包管理器和 OpenSSL 开发库。要编译和运行,请使用

cargo run

要构建发布版本,请使用

cargo build --release

在 Windows 上,使编译和静态链接 OpenSSL 的工作变得最简单的方法是下载 预编译的 OpenSSL 二进制文件 (非轻量级,64位) 并设置以下环境变量

  • OPENSSL_DIR=C::\OpenSSL-WIN64
  • OPENSSL_STATIC=1
  • OPENSSL_LIBS=libssl_static:libcrypto_static

用法

armake2

Usage:
    armake2 rapify [-v] [-f] [-w <wname>]... [-i <includefolder>]... [<source> [<target>]]
    armake2 preprocess [-v] [-f] [-w <wname>]... [-i <includefolder>]... [<source> [<target>]]
    armake2 derapify [-v] [-f] [-d <indentation>] [<source> [<target>]]
    armake2 binarize [-v] [-f] [-w <wname>]... <source> <target>
    armake2 build [-v] [-f] [-w <wname>]... [-i <includefolder>]... [-x <excludepattern>]... [-e <headerext>]... [-k <privatekey>] [-s <signature>] <sourcefolder> [<target>]
    armake2 pack [-v] [-f] <sourcefolder> [<target>]
    armake2 inspect [-v] [<source>]
    armake2 unpack [-v] [-f] <source> <targetfolder>
    armake2 cat [-v] <source> <filename> [<target>]
    armake2 keygen [-v] [-f] <keyname>
    armake2 sign [-v] [-f] [-s <signature>] [--v2] <privatekey> <pbo> [<signature>]
    armake2 verify [-v] <publickey> <pbo> [<signature>]
    armake2 paa2img [-v] [-f] [<source> [<target>]]
    armake2 img2paa [-v] [-f] [-z] [-t <paatype>] [<source> [<target>]]
    armake2 (-h | --help)
    armake2 --version

有关更多信息,请参阅 armake2 --help

依赖项

~6–15MB
~193K SLoC