#wasm-binary #binary-format #binary-parser #parser

wain-syntax-binary

为wain项目编写的WebAssembly二进制格式解析器

6个版本

0.1.5 2023年11月18日
0.1.4 2020年6月13日
0.1.2 2020年5月24日
0.1.1 2020年3月29日

WebAssembly 中排名第 918

每月下载量 40次
wain 中使用

MIT 许可协议

78KB
2K SLoC

wain-syntax-binary

crates.io CI

wain-syntax-binary 是一个用于解析 WebAssembly二进制格式 文件的crate。

此crate是更大的 wain 项目的一部分。

安装

[dependencies]
wain-syntax-binary = "0"

用法

使用 wain_syntax_binary::parse() 是最简单的方式。

extern crate wain_syntax_binary;

use std::fs;
use wain_syntax_binary::parse;

let source = fs::read("foo.wasm").unwrap();

match parse(&source) {
    Ok(tree) => { /* `tree` is `wain_ast::Root` value */ }
    Err(err) => eprintln!("Error! {}", err),
}

关于此库解析的语法树结构,请参阅 wain-ast crate。

使用 Parser 结构,它可以解析Wasm二进制的一部分。

extern crate wain_syntax_binary;

use std::fs;
use wain_syntax_binary::Parser;
use wain_ast::DataSegment;

let source = fs::read("data_segment_only.bin").unwrap();

// Parse only data segment
let data: DataSegment<'_> = Parser.parse().unwrap();

可以在 examples/api/ 目录 中看到工作示例

请阅读文档(尚未完成)以获取详细信息。

许可协议

MIT许可协议

依赖关系