60 lines
2.2 KiB
Markdown
60 lines
2.2 KiB
Markdown
<div align="center">
|
|
<h1><code>wast</code></h1>
|
|
|
|
<strong>A <a href="https://bytecodealliance.org/">Bytecode Alliance</a> project</strong>
|
|
|
|
<p>
|
|
<strong>A Rust parser for the <a href="https://webassembly.github.io/spec/core/text/index.html">WebAssembly Text Format (WAT)</a>.</strong>
|
|
</p>
|
|
|
|
<p>
|
|
<a href="https://crates.io/crates/wast"><img src="https://img.shields.io/crates/v/wast.svg?style=flat-square" alt="Crates.io version" /></a>
|
|
<a href="https://crates.io/crates/wast"><img src="https://img.shields.io/crates/d/wast.svg?style=flat-square" alt="Download" /></a>
|
|
<a href="https://docs.rs/wast/"><img src="https://img.shields.io/badge/docs-latest-blue.svg?style=flat-square" alt="docs.rs docs" /></a>
|
|
</p>
|
|
</div>
|
|
|
|
|
|
## Usage
|
|
|
|
Add `wast` to your `Cargo.toml`
|
|
|
|
```sh
|
|
$ cargo add wast
|
|
```
|
|
|
|
The intent of this crate is to provide utilities, combinators, and built-in
|
|
types to parse anything that looks like a WebAssembly s-expression.
|
|
|
|
* Need to parse a `*.wat` file?
|
|
* Need to parse a `*.wast` file?
|
|
* Need to run test suite assertions from the official wasm test suite?
|
|
* Want to write an extension to the WebAssembly text format?
|
|
|
|
If you'd like to do any of the above this crate might be right for you! You may
|
|
also want to check out the `wat` crate which provides a much more stable
|
|
interface if all you'd like to do is convert `*.wat` to `*.wasm`.
|
|
|
|
## Cargo features
|
|
|
|
By default this crate enables and exports support necessary to parse `*.wat` and
|
|
`*.wast` files, or in other words entire wasm modules. If you're using this
|
|
crate, however, to parse simply an s-expression wasm-related format (like
|
|
`*.witx` or `*.wit` perhaps) then you can disable the default set of features to
|
|
only include a lexer, the parsing framework, and a few basic token-related
|
|
parsers.
|
|
|
|
```sh
|
|
$ cargo add wast --no-default-features
|
|
```
|
|
|
|
# License
|
|
|
|
This project is licensed under the Apache 2.0 license with the LLVM exception.
|
|
See [LICENSE](LICENSE) for more details.
|
|
|
|
### Contribution
|
|
|
|
Unless you explicitly state otherwise, any contribution intentionally submitted
|
|
for inclusion in this project by you, as defined in the Apache-2.0 license,
|
|
shall be dual licensed as above, without any additional terms or conditions.
|