1 个不稳定版本
0.5.0 | 2023 年 12 月 1 日 |
---|
#320 在 Cargo 插件
48KB
1K SLoC
cargo-minify
从您的 Rust 程序中删除未使用的代码。主要针对生成的代码(最佳示例:bindgen 生成的绑定),但也适用于更广泛的场景。
限制
库中的公共函数和类型(这很有意义),以及在二进制文件和示例中也不认为是未使用的,还包括显式允许未使用的代码(使用 #[allow(unused)]
)。
安装
git clone [email protected]:tweedegolf/cargo-minify.git
cargo install --path cargo-minify
用法
安装后,您可以从 crate 根目录简单地通过键入 cargo minify
运行此工具。这将运行您的项目,并将打印出将对您的代码进行的任何更改。
要实际应用这些更改,您必须运行 cargo minify --apply
。
您可以使用 --ignore
选项执行更精确的压缩,后跟通配符指定。排除的文件中的未使用代码将不会被修改。您还可以使用 --kinds
标志来指定要删除的未使用代码类型。支持的类型包括
FUNCTION
,这将删除未使用的函数定义ASSOCIATED_FUNCTION
,这将删除从impl
块中未使用的关联函数STRUCT
,ENUM
,UNION
,这将删除相应类型未使用的类型定义TYPE_ALIAS
,这将删除未使用的类型别名CONST
,这将删除未使用的常量STATIC
,这将删除未使用的静态变量
如果没有指定任何 --kinds
,上述所有内容都将被移除。
cargo minify --apply
期望你的文件处于版本控制之下;如果并非如此,将会给出警告并且不会进行任何更改;可以使用 --allow-no-vcs
、--allow-dirty
和 --allow-staged
标志来覆盖。
当然,您也可以通过运行 cargo minify --help
来查看此信息(以及其他选项)。
未来工作
待添加到 cargo minify
- 移除未使用的
static
变量。 - 检测并移除未使用的派生特质。
许可证
许可协议为以下之一
- Apache License, Version 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
根据您的要求。
贡献
除非您明确说明,否则您提交的任何贡献,按照 Apache-2.0 许可证的定义,将按照上述协议双重许可,不附加任何额外条款或条件。
依赖关系
~9–20MB
~329K SLoC