#owasm #executable #utilities #collection #api #wasm #counter

无std owasm-utils

owasm兼容可执行文件的生产命令行工具和相应的Rust API的集合

2个不稳定版本

使用旧的Rust 2015

0.6.0 2018年11月8日
0.1.0 2018年11月8日

#1 in #owasm


owasm-utils-cli中使用

MIT/Apache

110KB
3K SLoC

wasm-utils

Build Status

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

cargo的构建工具

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

cargo install owasm-utils-cli --bin wasm-build

符号修剪(wasm-prune)

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

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

气体计数器(wasm-gas)

在开发过程中,可以将原始WASM合约注入气体计数器(与Parity运行时运行合约的方式相同)

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

外部化(wasm-ext)

Parity WASM运行时提供了一些在libc中常见的基础库函数。如果使用这些函数,WASM二进制文件的大小可以减小,性能可能得到提高。这个工具会扫描WASM二进制文件内部的以下函数调用:

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

然后将它们替换为导入函数的调用。应该在wasm-opt之前运行,以获得更好的效果。

cargo install owasm-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许可证的定义,应按照上述方式双重许可,不附加任何额外条款或条件。

依赖项

~515KB
~12K SLoC