WebAssembly (WASM)

Execute código de alto desempenho diretamente no navegador

Rust JavaScript Alto Desempenho Multiplataforma

O que é WebAssembly?

WebAssembly (WASM) é um formato binário de baixo nível que permite executar código de alto desempenho no navegador web. Ele foi projetado como um complemento ao JavaScript, não como um substituto.

Portabilidade: Código compilado roda em qualquer navegador moderno
Desempenho: Execução próxima à velocidade nativa
Segurança: Execução em sandbox com isolamento de memória
Formato Binário

WASM usa um formato binário compacto (.wasm) que é mais eficiente que texto:

(module
(func $add (param $a i32) (param $b i32) (result i32)
local.get $a
local.get $b
i32.add)
(export "add" (func $add)))

Principais Benefícios

Por que usar WebAssembly em seus projetos?

Alto Desempenho

Executa código em velocidade próxima ao nativo, ideal para aplicações intensivas como jogos, edição de vídeo e processamento de dados.

Multi-linguagem

Suporta múltiplas linguagens de programação além de JavaScript, incluindo Rust, C/C++, Go, e mais.

Segurança

Executa em um ambiente sandboxed com acesso controlado à memória e recursos do sistema.

Exemplo Prático Passo a Passo

Criando seu primeiro módulo WASM com Rust

1

Instale as ferramentas necessárias

rustup target add wasm32-unknown-unknown
cargo install wasm-pack
2

Crie um novo projeto Rust

cargo new --lib wasm-example
cd wasm-example
3

Configure o Cargo.toml

[package]
name = "wasm-example"
version = "0.1.0"
edition = "2021"

[lib]
crate-type = ["cdylib"]

[dependencies]
wasm-bindgen = "0.2"
4

Escreva o código Rust

use wasm_bindgen::prelude::*;

#[wasm_bindgen]
pub fn fibonacci(n: u32) -> u32 {
match n {
0 => 0,
1 => 1,
_ => fibonacci(n - 1) + fibonacci(n - 2),
}
}
5

Compile para WASM

wasm-pack build --target web
6

Use no JavaScript

import init, { fibonacci } from './pkg/wasm_example.js';

async function run() {
await init();
console.log(fibonacci(10)); // 55
}

run();

Recursos e Referências

Documentação oficial e ferramentas úteis