2 releases
Uses old Rust 2015
0.6.2 | May 14, 2019 |
---|---|
0.6.1 | May 14, 2019 |
#459 in WebAssembly
155KB
4K
SLoC
xwasm-utils
Collection of WASM utilities used in Susy and WASM contract development
Build tools for cargo
Easiest way to use is to install via cargo install
:
cargo install xwasm-utils-cli --bin xwasm-build
Symbols pruning (xwasm-prune)
cargo install xwasm-utils-cli --bin xwasm-prune
xwasm-prune <input_xwasm_binary.xwasm> <output_xwasm_binary.xwasm>
This will optimize WASM symbols tree to leave only those elements that are used by contract call
function entry.
Gas counter (xwasm-gas)
For development puposes, raw WASM contract can be injected with gas counters (the same way as it done by Susy runtime when running contracts)
cargo install xwasm-utils-cli --bin xwasm-gas
xwasm-gas <input_xwasm_binary.xwasm> <output_xwasm_binary.xwasm>
Externalization (xwasm-ext)
Susy WASM runtime provides some library functions that can be commonly found in libc. WASM binary size can be reduced and performance may be improved if these functions are used. This utility scans for invocations of the following functions inside the WASM binary:
_malloc
,_free
,_memcpy
,_memset
,_memmove
And then substitutes them with invocations of the imported ones. Should be run before xwasm-opt
for better results.
cargo install xwasm-utils-cli --bin xwasm-ext
xwasm-ext <input_xwasm_binary.xwasm> <output_xwasm_binary.xwasm>
API
All executables use corresponding api methods of the root crate and can be combined in other build tools.
License
xwasm-utils
is primarily distributed under the terms of both the MIT
license and the Apache License (Version 2.0), at your choice.
See LICENSE-APACHE, and LICENSE-MIT for details.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in xwasm-utils
by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.
Dependencies
~435KB
~10K SLoC