WebAssembly - Utilisation de Rust
Pour obtenir le code de compilation RUST, nous utiliserons l'outil WebAssembly.studio.
Accédez à WebAssembly.studio qui est disponible sur Aller àhttps://webassembly.studio/ et il affichera votre écran comme indiqué ci-dessous -
![](https://post.nghiatu.com/assets/tutorial/webassembly/images/rust_compile_code.jpg)
Cliquez sur Projet de rouille vide. Une fois terminé, vous obtiendrez trois fichiers dans le dossier src / -
![](https://post.nghiatu.com/assets/tutorial/webassembly/images/get_three_files.jpg)
Ouvrez le fichier main.rs et modifiez le code de votre choix.
J'ajoute la fonction suivante qui ajoutera deux nombres donnés -
fn add_ints(lhs: i32, rhs: i32) -> i32 {
lhs+rhs
}
Le code disponible dans main.rs est le suivant -
#[no_mangle]
pub extern "C" fn add_one(x: i32) -> i32 {
x + 1
}
Remplacez le fn add_one par le vôtre comme indiqué ci-dessous -
#[no_mangle]
pub extern "C" fn add_ints(lhs: i32, rhs: i32) -> i32 {
lhs+rhs
}
Dans main.js, changez le nom de la fonction de add_one en add_ints
fetch('../out/main.wasm').then(
response =>
response.arrayBuffer()
).then(bytes => WebAssembly.instantiate(bytes)).then(results => {
instance = results.instance;
document.getElementById("container").textContent = instance.exports.add_one(41);
}).catch(console.error);
Remplacez instance.exports.add_one par instance.exports.add_ints (100,100)
fetch('../out/main.wasm').then(
response =>
response.arrayBuffer()
).then(bytes => WebAssembly.instantiate(bytes)).then(results => {
instance = results.instance;
document.getElementById("container").textContent = instance.exports.add_ints(100,100)
}).catch(console.error);
Cliquez sur le bouton de construction disponible sur l'interface utilisateur webassembly.studio pour créer le code.
![](https://post.nghiatu.com/assets/tutorial/webassembly/images/webassembly_studio_ui.jpg)
Une fois la construction terminée, cliquez sur le bouton Exécuter disponible sur l'interface utilisateur, pour voir la sortie -
![](https://post.nghiatu.com/assets/tutorial/webassembly/images/run_button.jpg)
Nous obtenons la sortie comme 200, lorsque nous avons passé instance.exports.add_ints (100,100).
De même, vous pouvez écrire un programme différent pour rust et le faire compiler dans webassembly.studio.