#wasm-interpreter #interpreter #bytecode #wasm-bytecode

无 std bin+lib patract-wasmi

WebAssembly 解释器

显示软件包…

2 个不稳定版本

0.9.1 2021 年 10 月 13 日
0.6.2 2021 年 6 月 14 日

#33#wasm-bytecode

Download history 50/week @ 2024-04-22 35/week @ 2024-04-29 43/week @ 2024-05-06 38/week @ 2024-05-13 47/week @ 2024-05-20 30/week @ 2024-05-27 33/week @ 2024-06-03 31/week @ 2024-06-10 34/week @ 2024-06-17 43/week @ 2024-06-24 21/week @ 2024-07-08 51/week @ 2024-07-15 20/week @ 2024-07-22 31/week @ 2024-07-29 38/week @ 2024-08-05

140 每月下载量
15 个软件包(2 个直接) 中使用

MIT/Apache

435KB
10K SLoC

crates.io link Build Status

wasmi

wasmi - 一个 Wasm 解释器。

wasmi 最初被视为 parity-ethereum(类似以太坊的合约在 Wasm 中)和 substrate 的组件。这些项目与区块链相关,需要高度的正确性,即使这可能过于保守。这意味着我们不想参与任何正在进行中的 Wasm 建议的实现。我们也在尽可能接近规范,这意味着我们试图避免规范未直接支持的功能。这意味着它在一方面是灵活的,另一方面也不应该有问题迁移到另一个符合规范的执行引擎。

话虽如此,wasmi 应该是一个不错的初始原型设计选项。

构建 & 测试

由于 wasmi 包含一个 git 子模块,您需要使用 --recursive 来克隆或显式检出子模块,否则测试会失败。

git clone https://github.com/paritytech/wasmi.git --recursive
cd wasmi
cargo build
cargo test

no_std 支持

此软件包支持 no_std 环境。启用 core 功能并禁用默认功能

[dependencies.wasmi]
version = "*"
default-features = false
features = ["core"]

core 功能被启用时,与 std::error 相关的代码会被禁用。

许可证

wasmi 主要在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发,由您选择。

有关详细信息,请参阅 LICENSE-APACHE 和 LICENSE-MIT。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义,您提交的任何旨在包含在 wasmi 中的贡献,将按照上述方式双许可,没有其他条款或条件。

依赖关系

~0.6–1MB
~21K SLoC