7 个版本
0.1.0 | 2021年10月27日 |
---|---|
0.0.6 | 2021年10月22日 |
0.0.4 | 2021年9月2日 |
0.0.2 | 2021年8月20日 |
#2676 in 解析器实现
280KB
5K SLoC
WASM
一个用于生成、解析和发射 WebAssembly 代码的 Rust 原生 WebAssembly 语法模型。
设计
WASM-AST 采用最小验证设计。目标是尽可能紧密地模拟 WASM 语法规范,以便允许有效的和无效的抽象语法树。最后,一旦构建,模块就不能被修改。
功能
解析器
二进制 WebAssembly 格式的解析器。尝试尽可能保持尽可能多的二进制信息。
文本
文本和二进制 WebAssembly 格式的解析器。文本格式被转换为二进制,然后传递给二进制解析器。在文本到二进制的转换过程中可能会丢失一些信息。
发射器
为模块发射二进制 WebAssembly 格式。
用法
要使用 wasm-ast
,首先将以下内容添加到您的 Cargo.toml
[dependencies]
wasm-ast = "0.1.0"
然后,将以下内容添加到您的 crate
use wasm_ast::model::Module;
fn main() {
let mut builder = Module::builder();
let module = builder.build();
}
示例
创建一个空的 WASM 模块
use wasm_ast::model::Module;
fn main() {
let module = Module::empty();
}
更多(即更有用)的示例可以在仓库中找到。
稳定性
界面被认为是稳定的。在下一个主要版本(例如 1.0
)之前不会引入破坏性更改。
问题
请提交任何关于此 crate 没有正确遵循 WebAssembly 标准的问题。
许可证
根据 Apache License,版本 2.0 许可(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)授权
贡献
除非您明确声明,否则任何有意提交给工作并由您定义的 Apache-2.0 许可包含的贡献,将按上述方式许可,不附加任何额外条款或条件。
依赖关系
~0.3–1.2MB
~26K SLoC