| <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. |