1 个不稳定版本
使用旧的 Rust 2015
0.31.3 | 2019 年 3 月 16 日 |
---|
#1230 in WebAssembly
在 4 crates 中使用
230KB
6.5K SLoC
susy-wasm
低级 WebAssembly 格式库。
Rust WebAssembly 格式序列化/反序列化
添加到 Cargo.toml
[dependencies]
susy-wasm = "0.31"
然后
extern crate susy_wasm;
let module = susy_wasm::deserialize_file("./res/cases/v1/hello.wasm").unwrap();
assert!(module.code_section().is_some());
let code_section = module.code_section().unwrap(); // Part of the module with functions code
println!("Function count in wasm file: {}", code_section.bodies().len());
Wabt 测试套件
susy-wasm
支持 Wabt 测试套件 (https://github.com/WebAssembly/testsuite),它涉及反序列化。
要运行测试套件
- 请确保您已安装所有构建
wabt
的先决条件(由于susy-wasm
在内部使用wabt
构建,它需要wabt
来运行测试套件) - 运行以下命令来构建
wabt
: - 对于 Windows 系统:
请确保您已安装 Python
和 pip
,然后运行以下命令:
pip install wabt
- 运行以下命令来构建
wabt
: - 对于 Linux 和 macOS 系统:
- 请确保您已安装
Python
和pip
,然后运行以下命令: pip install wabt
构建完成后,您可以使用以下命令运行测试套件:
此包具有一个默认启用的功能,即 std
。要在 no_std
环境中使用此包,请在您的 Cargo.toml
中添加以下内容:
[dependencies]
susy-wasm = { version = "0.31", default-features = false }
在分配器 API 稳定之前,此类用法仅限于 nightly Rust。
许可证
susy-wasm
主要根据 MIT 许可证和 Apache 许可证(版本 2.0)的条款进行分发,由您选择。
有关详细信息,请参阅 LICENSE-APACHE 和 LICENSE-MIT。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交以包含在 susy-wasm 中的任何贡献,应按上述方式双许可,不附加任何额外的条款或条件。