|
| 1 | +# Tools |
| 2 | + |
| 3 | +Now that you we have learned how to generate our first WebAssembly "Hello World" with Rust, |
| 4 | +it is time to check what tooling is avaiable in the language. |
| 5 | +There are several great tools already written for WebAssembly (most of them written in C++). |
| 6 | +[Wabt](https://github.com/WebAssembly/wabt), for instance, is a suite of tools built to be a starting point for manipulating WebAssembly files. |
| 7 | + |
| 8 | +However, since Rust has the potential to be used for both development and tooling for WebAssembly, several tools written in it have popped up in the ecosystem: |
| 9 | +- [wasm-gc](https://github.com/alexcrichton/wasm-gc) - "a small command to gc a wasm module and remove all unneeded exports, imports, functions, etc." |
| 10 | +- [wasm-nm](https://github.com/fitzgen/wasm-nm) - "list the symbols within a wasm file". |
| 11 | +- [wasm-snip](https://github.com/fitzgen/wasm-snip) - "replaces a wasm function body with unreachable" |
| 12 | +- [rustwasm](https://github.com/joshuawarner32/rust-wasm) - A wasm interpreter in Rust |
| 13 | +- [wasmi](https://github.com/pepyakin/wasmi) - A wasm interpreter in Rust, |
| 14 | +- [parity-wasm](https://github.com/paritytech/parity-wasm) - wasm (de)serialization in Rust, |
| 15 | +- [wasmparser](https://github.com/yurydelendik/wasmparser.rs) - A wasm binary decoder with optional validation, in Rust |
| 16 | +- [wasmtext](https://github.com/yurydelendik/wasmtext) - prints wasm modules in text format, in Rust |
| 17 | +- [wasmstandalone](https://github.com/sunfishcode/wasmstandalone) - standalone JIT-based wasm runner, in Rust, using Cretonne, in early development |
| 18 | + |
| 19 | +There's also plenty of _space for tooling to be be built or rewritten in Rust_ for better syngerny with the ecosystem. Some of them include: |
| 20 | +- [A wasm size profiler](https://github.com/rust-lang-nursery/rust-wasm/issues/20) |
| 21 | +- A [Wabt](https://github.com/WebAssembly/wabt) rewrite in Rust |
| 22 | +- Tools for the [ewasm project](https://github.com/ewasm) |
| 23 | + |
| 24 | +This page is meant to be a living document, so feel free to send us a pull request adding new incredible WebAssembly tools we might have missed or when they are released in the future! |
0 commit comments