10 个版本 (5 个重大更新)

0.6.0 2024 年 8 月 15 日
0.5.0 2024 年 6 月 22 日
0.4.2 2024 年 6 月 22 日
0.4.1 2024 年 3 月 11 日
0.3.2 2023 年 11 月 20 日

#571 in 游戏开发

Download history • Rust 包仓库 486/week @ 2024-04-26 • Rust 包仓库 169/week @ 2024-05-03 • Rust 包仓库 14/week @ 2024-05-10 • Rust 包仓库 55/week @ 2024-05-17 • Rust 包仓库 111/week @ 2024-05-24 • Rust 包仓库 124/week @ 2024-05-31 • Rust 包仓库 55/week @ 2024-06-07 • Rust 包仓库 36/week @ 2024-06-14 • Rust 包仓库 378/week @ 2024-06-21 • Rust 包仓库 104/week @ 2024-06-28 • Rust 包仓库 130/week @ 2024-07-05 • Rust 包仓库 105/week @ 2024-07-12 • Rust 包仓库 23/week @ 2024-07-19 • Rust 包仓库 34/week @ 2024-07-26 • Rust 包仓库 7/week @ 2024-08-02 • Rust 包仓库 69/week @ 2024-08-09 • Rust 包仓库

每月 162 次下载
4 个包中使用(直接使用 2 个)

MIT 许可证

17KB
312 代码行

WGSL Minifier

crates.io docs.rs crates.io

一个基于 Naga 构建的简单工具,通过执行简单的死代码消除、移除非导出函数和局部变量的名称以及尽可能多地删除空格,使 WGSL 着色器变得更小。

用法

要压缩您的 WGSL 着色器,只需运行以下命令

cargo install wgsl-minifier
wgsl-minifier path/to/your/shader.wgsl path/to/minified/output.wgsl

作为库

要将此包用作库,例如在游戏引擎或更大的预处理器中,需要调用两次。第一次尽可能将标识符压缩成更小的名称。第二次删除源字符串中的不必要的空格、逗号和括号

let mut module = /* your source here, or */ naga::Module::default();

// Now minify!
wgsl_minifier::minify_module(&mut module);

// Write to WGSL string
let mut validator = naga::valid::Validator::new(
    naga::valid::ValidationFlags::all(),
    naga::valid::Capabilities::all(),
);
let info = validator.validate(&module).unwrap();
let output = naga::back::wgsl::write_string(&module, &info, naga::back::wgsl::WriterFlags::empty()).unwrap();

// Minify string
let output = wgsl_minifier::minify_wgsl_source(&output);

依赖项

~6–15MB
~168K SLoC