#swasm #wasm #pswasm

no-std swasm-utils

用于生成pswasm兼容可执行文件的命令行工具和相应的Rust API集合

1个不稳定版本

使用旧的Rust 2015

0.6.1 2019年5月13日

#1985 in #wasm

MIT/Apache

110KB
3K SLoC

swasm-utils

Build Status

用于Susy和WASM合同开发的WASM工具集合

cargo构建工具

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

cargo install swasm-utils-cli --bin swasm-build

符号剪枝(swasm-prune)

cargo install swasm-utils-cli --bin swasm-prune
swasm-prune <input_swasm_binary.swasm> <output_swasm_binary.swasm>

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

Gas计数器(swasm-gas)

出于开发目的,原始WASM合同可以注入gas计数器(类似于Susy运行时在运行合同时所做的操作)

cargo install swasm-utils-cli --bin swasm-gas
swasm-gas <input_swasm_binary.swasm> <output_swasm_binary.swasm>

外部化(swasm-ext)

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

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

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

cargo install swasm-utils-cli --bin swasm-ext
swasm-ext <input_swasm_binary.swasm> <output_swasm_binary.swasm>

API

所有可执行文件都使用根存储库的相应API模块,并且可以与其他构建工具结合使用。

许可证

swasm-utils主要根据MIT许可证和Apache许可证(版本2.0)的条款分发,您可选择。

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

贡献

除非您明确声明,否则您提交给swasm-utils以供包含的贡献,根据Apache-2.0许可证定义,应作为上述双重许可发布,不附加任何其他条款或条件。

依赖关系

~440KB
~10K SLoC