Skip to content

Commit 41a0a35

Browse files
authored
Add Tools.md (rustwasm#41)
1 parent dadf67a commit 41a0a35

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

src/tools.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
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

Comments
 (0)