1个不稳定版本
使用旧的Rust 2015
0.6.1 | 2019年5月13日 |
---|
#1985 in #wasm
110KB
3K SLoC
swasm-utils
用于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