4 个版本

使用旧的 Rust 2015

0.3.1 2018 年 9 月 3 日
0.3.0 2018 年 9 月 3 日
0.2.1 2018 年 9 月 2 日
0.2.0 2018 年 9 月 1 日

#1178 in WebAssembly

每月 21 次下载

MIT/Apache

265KB
5K SLoC

greenwasm

基于 Rust 实现的 Webassembly 规范。

项目结构尽可能遵循规范的结构。当前进度

  • 结构(crate greenwasm-structure):Wasm 类型、指令和模块的别名定义。
  • 验证(crate greenwasm-validation):Wasm 模块的验证器。
  • 执行(crate greenwasm-execution):Wasm 模块的简单执行引擎。
  • 二进制格式(crate greenwasm-binary-format):用于 .wasm 二进制格式的解析器。
  • 文本格式:用于 .wat 文本格式的解析器。

各个 crate 都从中央 greenwasm crate 中导出,该 crate 还将它们与测试套件和一些模糊测试脚本关联起来。

当前版本主要是学习练习,但长期目标包括

  • 模块化:应该能够独立于彼此使用解析器/验证器/别名定义。由于在不同 crate 中的分割,这已经部分实现。
  • 通用性:应该能够独立于底层 AST 格式进行解析/验证。
  • 性能:应该适用于面向性能的项目。

测试套件

greenwasm-spectest crate 包含了对官方 Webassembly MVP 测试套件 的镜像的库封装。

它作为主 greenwasm crate 的 dev-dependency 使用,但对该仓库中的其他 crate 没有依赖。因此,它可以作为独立测试套件启动器用于其他 Webassembly 实现。

许可

根据您的选择,许可如下

贡献

除非您明确说明,否则根据Apache-2.0许可证定义的您有意提交以包含在该作品中的任何贡献,应以上述方式双授权,不附加任何额外条款或条件。

依赖关系

~18MB
~327K SLoC