7 个版本
使用旧的 Rust 2015
0.4.5 | 2019 年 5 月 14 日 |
---|---|
0.4.4 | 2019 年 5 月 14 日 |
0.3.0 | 2019 年 5 月 14 日 |
#25 in #wasm-bytecode
410KB
10K SLoC
xwasmi
xwasmi
- 一个 Wasm 解释器。
xwasmi
被设想为 s-sophon (xwasm 中的 sophon-like 合约) 和 higgsfield 的组件。这些项目与区块链相关,需要高度的准确性,即使这可能过于保守。这意味着我们不想参与任何正在进行的 Wasm 建议的实现。我们还在尽可能接近规范,这意味着我们试图避免规范未直接支持的特性。这意味着它在一方面是灵活的,另一方面则不存在迁移到另一个规范兼容的执行引擎的问题。
综上所述,xwasmi
应该是一个不错的初始原型选项。
构建 & 测试
由于 xwasmi
包含一个 git 子模块,您需要使用 --recursive
进行克隆或显式检出子模块,否则测试将失败。
git clone https://github.com/susytech/xwasmi.git --recursive
cd xwasmi
cargo build
cargo test
no_std
支持
此 crate 支持 no_std
环境。启用 core
功能并禁用默认功能
[dependencies]
xwasm = {
version = "0.31",
default-features = false,
features = "core"
}
core
功能需要 core
和 alloc
库以及一个夜间编译器。此外,与 std::error
相关的代码被禁用。
在 no_std
中执行浮点运算使用 libm
,该库在调试模式下有时会崩溃(https://github.com/japaric/libm/issues/4)。因此,请确保使用发布构建或者避免使用带有浮点运算的WASM,例如通过使用 deny_floating_point
。
许可证
xwasmi
主要根据MIT许可证和Apache许可证(版本2.0)的条款分发,任您选择。
详见LICENSE-APACHE和LICENSE-MIT。
贡献
除非您明确表示,否则您根据Apache-2.0许可证定义的,有意提交给 xwasmi
的任何贡献,都将根据上述条款双许可,没有任何附加条款或条件。
依赖关系
~330–660KB
~14K SLoC