# WebAssembly support

for `emscripten`

for `wasm32-unknown-unknown`

Rust has gained support for WebAssembly, meaning that you can run Rust code in your browser, client-side.

In Rust 1.14, we gained support through emscripten. With it installed, you can write Rust code and have it produce asm.js (the precusor to wasm) and/or WebAssembly.

Here's an example of using this support:

    $ rustup target add wasm32-unknown-emscripten
    $ echo 'fn main() { println!("Hello, Emscripten!"); }' > hello.rs
    $ rustc --target=wasm32-unknown-emscripten hello.rs
    $ node hello.js

However, in the meantime, Rust has also grown its own support, independent from Emscripten. This is known as "the unknown target", because instead of `wasm32-unknown-emscripten`, it's `wasm32-unknown-unknown`. This will be the preferred target to use once it's ready, but for now, it's really only well-supported in nightly.