106个稳定版本

1.216.0 2024年8月22日
1.215.0 2024年7月31日
1.212.0 2024年6月27日
1.202.0 2024年3月26日
0.1.0 2016年9月23日

WebAssembly 中排名 16

Download history 96675/week @ 2024-05-02 102066/week @ 2024-05-09 113024/week @ 2024-05-16 112513/week @ 2024-05-23 111666/week @ 2024-05-30 90902/week @ 2024-06-06 108835/week @ 2024-06-13 102757/week @ 2024-06-20 94326/week @ 2024-06-27 96656/week @ 2024-07-04 124575/week @ 2024-07-11 127238/week @ 2024-07-18 118222/week @ 2024-07-25 118031/week @ 2024-08-01 134985/week @ 2024-08-08 135299/week @ 2024-08-15

每月下载量 528,209
用于 443 个crate(118个直接使用)

Apache-2.0…

705KB
16K SLoC

wat

Bytecode Alliance 项目

用于解析 WebAssembly文本格式(WAT) 的Rust解析器。

Crates.io version Download docs.rs docs docs.rs docs

用法

wat 添加到您的 Cargo.toml

$ cargo add wat

然后您可以通过以下方式将WAT解析为二进制WebAssembly

// Parse from a file ...
let binary = wat::parse_file("./foo.wat")?;

// ... or a string
let wat = r#"
    (module
        (func $foo)

        (func (export "bar")
            call $foo
        )
    )
"#;
let binary = wat::parse_str(wat)?;

AST表示

wat crate不公开AST,因为它的目标是提供一个永远稳定的接口,针对的是 wast crate。使用 wat 适合于只想从文本到二进制转换的情况,例如将CLI程序的输入解析为WebAssembly二进制格式。

如果您对处理文本文件的AST或以其他方式向文本格式添加自己的解析感兴趣,请查看 wast crate

稳定性和WebAssembly功能

有关更多信息,请参阅 crate文档,但总体思路是,该crate不会因WAT格式的变更而发布semver-breaking更改,无论是MVP功能还是post-MVP功能。无需选择即可使用WebAssembly功能,因此如果上游规范更改,则可能会破坏它们。

许可

本项目的许可证为Apache 2.0许可证,同时包含LLVM例外条款。有关更多详细信息,请参阅LICENSE

贡献

除非您明确声明,否则您根据Apache-2.0许可证提交的任何有意贡献,旨在包含在本项目中,将按照上述条款进行许可,不附加任何额外条款或条件。

依赖项

~1–1.6MB
~24K SLoC