35个版本 (破坏性)
0.36.0 | 2024年7月24日 |
---|---|
0.34.0 | 2024年7月8日 |
0.17.0 | 2024年3月23日 |
0.15.0 | 2023年12月18日 |
0.2.0 | 2022年7月24日 |
#439 in WebAssembly
383,235 每月下载量
用于 222 个库 (3 直接)
115KB
2K SLoC
持续集成 | 测试覆盖率 | 文档 | Crates.io |
---|---|---|---|
Wasmi - WebAssembly (Wasm) 解释器
Wasmi是一个高效且轻量级的WebAssembly解释器,专注于受限制和嵌入式系统。
版本 0.31.0
已由 SRLabs审计。
公告:所有权转让
截至2024-02-01,Wasmi项目的原始所有者和维护者Parity Technologies已正式将项目所有权转让给我,Robin Freyler。了解更多关于这次转让 这里。
独特特性
以下列表列出了Wasmi的一些独特特性。
- 简单、正确且可预测的WebAssembly执行。
- 低开销且跨平台的嵌入式环境WebAssembly运行时。
- JIT炸弹抵抗翻译。
- 与Wasmtime API大致相同。
- 100%符合WebAssembly规范测试套件。
- 内置燃料计量支持。
- 支持官方的Wasm C-API。
使用
WebAssembly提案
新的Wasmi引擎支持各种WebAssembly提案,并将支持更多提案。
WebAssembly提案 | 状态 | 注释 |
---|---|---|
mutable-global |
✅ | 自版本 0.14.0 。 |
饱和浮点转整数 |
✅ | 自版本 0.14.0 。 |
符号扩展 |
✅ | 自版本 0.14.0 。 |
多值 |
✅ | 自版本 0.14.0 。 |
批量内存 |
✅ | 自版本 0.24.0 。 (#628) |
引用类型 |
✅ | 自版本 0.24.0 。 (#635) |
单指令多数据(SIMD) |
❌ | 不太可能得到支持。 |
尾调用 |
✅ | 自版本 0.28.0 。 (#683) |
扩展常量 |
✅ | 自版本 0.29.0 。 (#707) |
函数引用 |
📅 | 计划中但尚未实现。 (#774) |
垃圾回收(GC) |
📅 | 计划中但尚未实现。 (#775) |
多内存 |
📅 | 计划中但尚未实现。 (#776) |
线程 |
📅 | 计划中但尚未实现。 (#777) |
放宽的SIMD |
❌ | 由于不太可能支持SIMD,因此不太可能支持放宽的SIMD。 |
组件模型 |
📅 | 计划中但尚未实现。 (#897) |
异常处理 |
📅 | 计划中但尚未实现。 (#1037) |
分支提示 |
📅 | 计划中但尚未实现。 (#1036) |
WASI | 👨🔬 | 通过wasmi_wasi crate,实验性地支持WASI(wasip1 )。 |
C-API | 👨🔬 | 通过wasmi_c_api_impl crate,实验性地支持官方Wasm C-API。 |
开发
构建 & 测试
克隆Wasmi仓库,并使用cargo
进行构建
git clone https://github.com/wasmi-labs/wasmi.git --recursive
cd wasmi
cargo build
cargo test
基准测试
为了基准测试Wasmi,请使用以下命令
cargo bench
使用translate
、instantiate
、execute
或overhead
过滤器,仅运行测试Wasm翻译、实例化、执行或杂项开销的基准测试,例如cargo bench execute
。
我们维护一个时间表,记录对每个提交到master
的基准测试,该时间表可以在此查看。
支持的平台
Wasmi支持广泛的架构和平台。
- 更多详情请参阅Rust支持的平台列表。
- 注意:Wasmi可以在
no_std
嵌入式环境中使用,因此不需要标准库(std
)。 - 只有一些平台在CI中进行检查,并由Wasmi维护者保证完全正常工作。
许可证
许可协议如下之一
- Apache License, Version 2.0, (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 协议 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则您有意提交以包含在本作品中的任何贡献(根据 Apache-2.0 许可协议定义),将如上双许可,不附加任何额外条款或条件。
依赖项
~595KB
~12K SLoC