| rustup target add wasm32-unknown-unknown |
| Arquivo: index.html |
| <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exemplo de WebAssembly</title> </head> <body> <script> const arquivo = 'exemplo.wasm'; WebAssembly .instantiateStreaming(fetch(arquivo)) .then(wasm => { const { instance } = wasm; const { soma } = instance.exports; // 12 alert(soma(5, 7)); }); </script> </body> </html> |
| Arquivo: exemplo.rs |
| // Instale o compilador Rust // Insira o seguinte comando abaixo // rustup target add wasm32-unknown-unknown #[no_mangle] pub extern "C" fn soma(numero_a: u8, numero_b: u8) -> u8{ numero_a + numero_b } |
| Arquivo: comando.bat |
| rustc exemplo.rs --target wasm32-unknown-unknown --crate-type=cdylib |
| Resultado: http://localhost/webassembly/index.html (tem que usar um servidor) |
![]() |
| Arquivo: index.html Observação: O arquivo exemplo.wasm está no diretório: exemplo/target/wasm32-unknown-unknown/release/ |
| <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Exemplo de WebAssembly</title> </head> <body> <script> const arquivo = 'exemplo/target/wasm32-unknown-unknown/release/exemplo.wasm'; WebAssembly .instantiateStreaming(fetch(arquivo)) .then(wasm => { const { instance } = wasm; const { soma } = instance.exports; // 12 alert(soma(5, 7)); }); </script> </body> </html> |
| Para criar a Estrutura de Pasta do Cargo, insira o comando abaixo: |
| cargo new exemplo --lib |
| Vai criar uma Estrutura de Pastas assim: |
![]() |
| Arquivo: /exemplo/src/lib.rs Observação: o arquivo lib.rs está na pasta /exemplo/src/ |
| // Instale o compilador Rust // Insira o seguinte comando abaixo // rustup target add wasm32-unknown-unknown // cargo new exemplo --lib // comando.bat #[unsafe(no_mangle)] pub extern "C" fn soma(numero_a: u8, numero_b: u8) -> u8{ numero_a + numero_b } |
| Arquivo: /exemplo/Cargo.toml Observação: o arquivo Cargo.toml está na pasta /exemplo/ |
[package] [lib] |
| Arquivo: /exemplo/.cargo/config.toml Observação: o arquivo config.toml está na pasta /exemplo/cargo/ |
| [build] target = "wasm32-unknown-unknown" |
| Arquivo: comando.bat |
| cd exemplo cargo build --release cd .. |
| Resultado: http://localhost/webassembly/index.html (tem que usar um servidor) |
![]() |