#pwasm #wasm

no-std susy-pwasm-utils

用于生成与pwasm兼容的可执行文件的命令行工具及其相应的Rust API的集合

2个版本

使用旧的Rust 2015

0.6.2 2019年3月24日
0.6.1 2019年4月3日

#2 in #pwasm

MIT/Apache

155KB
4K SLoC

wasm-utils

Build Status

Susy和WASM合约开发中使用的WASM工具集合

cargo的构建工具

最简单的方式是通过cargo install进行安装

cargo install susy-pwasm-utils-cli --bin wasm-build

符号修剪(wasm-prune)

cargo install susy-pwasm-utils-cli --bin wasm-prune
wasm-prune <input_wasm_binary.wasm> <output_wasm_binary.wasm>

这将优化WASM符号树,仅保留由合约call函数入口使用的元素。

气体计数器(wasm-gas)

出于开发目的,原始WASM合约可以注入气体计数器(与Susy运行时在运行合约时所做的相同方式)

cargo install susy-pwasm-utils-cli --bin wasm-gas
wasm-gas <input_wasm_binary.wasm> <output_wasm_binary.wasm>

外部化(wasm-ext)

Susy WASM运行时提供了一些在libc中常见库函数。如果使用这些函数,WASM二进制文件大小可以减小,性能可能得到提升。此实用程序会在WASM二进制文件内扫描以下函数的调用

  • _malloc,
  • _free,
  • _memcpy,
  • _memset,
  • _memmove

然后将其替换为导入的调用。应在wasm-opt之前运行,以获得更好的结果。

cargo install susy-pwasm-utils-cli --bin wasm-ext
wasm-ext <input_wasm_binary.wasm> <output_wasm_binary.wasm>

API

所有可执行文件都使用根crate的相应API方法,并可以在其他构建工具中组合使用。

许可

wasm-utils主要在MIT许可和Apache许可(版本2.0)的条款下分发,任选其一。

请参阅LICENSE-APACHE和LICENSE-MIT以获取详细信息。

贡献

除非您明确声明,否则您故意提交以包含在wasm-utils中的任何贡献,如Apache-2.0许可中定义,应按照上述方式双许可,而无需任何额外的条款或条件。

依赖项

~440KB
~10K SLoC