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 次下载
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 版本,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确说明,否则根据Apache-2.0许可证定义的您有意提交以包含在该作品中的任何贡献,应以上述方式双授权,不附加任何额外条款或条件。
依赖关系
~18MB
~327K SLoC