You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.4 KiB

# Creating `hello-world.wasm`
There are a number of ways to create `.wasm` files but for the purposes of this
tutorial, we'll be using the Rust toolchain. You can find more information on
creating `.wasm` files from other languages in the
[Writing WebAssembly section](./wasm.md).
To build WebAssembly binaries with Rust, you'll need the standard Rust toolchain.
[Follow these instructions to install `rustc`, `rustup` and `cargo`](https://www.rust-lang.org/tools/install)
Next, you should add WebAssembly as a build target for cargo like so:
```sh
$ rustup target add wasm32-wasi
```
Finally, create a new Rust project called 'hello-world'. You can do this by running:
```sh
$ cargo new hello-world
```
After that, the hello-world folder should look like this.
```text
hello-world/
├── Cargo.lock
├── Cargo.toml
└── src
└── main.rs
```
And the `main.rs` file inside the `src` folder should contain the following rust code.
```rust
fn main() {
println!("Hello, world!");
}
```
Now, we can tell `cargo` to build a WebAssembly file:
```sh
$ cargo build --target wasm32-wasi
```
Now, in the `target` folder, there's a `hello-world.wasm` file. You can find it here:
```text
hello-world/
├── Cargo.lock
├── Cargo.toml
├── src
└── target
└── ...
└── wasm32-wasi
└── debug
└── ...
└── hello-world.wasm
```