Rust-functies voor WASM schrijven
Ontwikkel Rust-functies die naar WASM kunnen worden gecompileerd en aan een JavaScript-omgeving beschikbaar kunnen worden gesteld voor uitvoering.
Rust-functies voor WASM schrijven is een gratis WebAssembly (WASM) voor performante toepassingen-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject WebAssembly (WASM) voor performante toepassingen. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus WebAssembly (WASM) voor performante toepassingen bevat in totaal 4 lessen.
Rust ontsluiten voor het web
Welkom terug! In de vorige les hebben we je Rust-omgeving ingesteld voor WebAssembly. Nu gaan we Rust-functies schrijven die rechtstreeks in je webtoepassingen kunnen worden gebruikt.
Het doel is om de prestaties en veiligheid van Rust beschikbaar te maken voor JavaScript, zodat je webapps nog krachtiger worden.
Standaardsyntaxis van Rust-functies
Voordat je exporteert, halen we kort aan hoe standaard Rust-functies worden gedefinieerd. Ze gebruiken het sleutelwoord fn, gevolgd door de functienaam, parameters met hun typen en een optioneel retourtype.
fn: Declareert een functie.(param: Type): Definieert parameters en hun typen.-> ReturnType: Geeft het retourtype van de functie op.
Introductie tot `#[wasm_bindgen]`
Om een Rust-functie aanroepbaar te maken vanuit JavaScript, gebruiken we een speciaal attribuut uit de crate wasm-bindgen: #[wasm_bindgen]. Zie het als een bruggenbouwer!
Dit attribuut vertelt de tool wasm-bindgen dat deze de benodigde 'verbindingscode' moet genereren, zodat JavaScript je Rust-functie probleemloos kan begrijpen en aanroepen.
Je eerste geëxporteerde functie: `add`
We schrijven een eenvoudige Rust-functie die twee gehele getallen optelt en stellen deze beschikbaar aan JavaScript. Deze functie komt in je bestand src/lib.rs.
Let op het attribuut #[wasm_bindgen] direct boven de functiedefinitie. Dat is de magie!
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub fn add(a: i32, b: i32) -> i32 {
a + b
}`pub` en `use` begrijpen
In het vorige voorbeeld zag je pub fn en use wasm_bindgen::prelude::*;. Laten we hun rol verduidelijken:
pub: Met dit sleutelwoord maak je de functie openbaar, zodat deze buiten de huidige module toegankelijk is, bijvoorbeeld vanuit JavaScript.use wasm_bindgen::prelude::*;: Deze regel importeert essentiële onderdelen uit de bibliotheekwasm-bindgen, waaronder het attribuut#[wasm_bindgen]zelf.
Je Rust compileren naar WASM
Na het schrijven van je Rust-code gebruik je de opdracht wasm-pack build (die we kort hebben genoemd in les 1) om deze naar een WebAssembly-module te compileren.
wasm-pack neemt alle complexiteit voor zijn rekening en maakt een .wasm-bestand en een JavaScript-bestand met 'verbindingscode' dat het laden van en werken met je Rust-functies vanuit JS vereenvoudigt.
Nog een eenvoudige functie: `multiply`
We voegen nog een functie toe aan src/lib.rs. Deze vermenigvuldigt twee getallen. Het proces is identiek: definieer de functie, voeg het attribuut #[wasm_bindgen] toe en maak de functie pub.
Dit laat zien hoe eenvoudig het is om meerdere Rust-functies beschikbaar te maken.
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub fn multiply(a: i32, b: i32) -> i32 {
a * b
}Typecompatibiliteit met JavaScript
Bij het definiëren van functies voor WASM verwerkt wasm-bindgen automatisch veel gangbare Rust-typen, zoals i32 en f64, en koppelt deze aan hun JavaScript-equivalenten (number).
Voor complexere typen, zoals tekenreeksen of aangepaste structuren, is speciale verwerking nodig. Dat bekijken we in toekomstige lessen. Gebruik voorlopig alleen primitieve numerieke typen.
Hoe JavaScript geëxporteerde functies gebruikt
Na het compileren genereert de tool wasm-pack een JavaScript-bestand, bijvoorbeeld my_wasm_lib.js, dat als tussenlaag fungeert.
Je importeert dit JS-bestand in je webproject. Het biedt functies zoals add() en multiply() rechtstreeks aan, waarbij het laadproces van WASM wordt afgeschermd. Daardoor voelt het gebruik van Rust-functies net als het aanroepen van gewone JavaScript-functies.
Test je kennis
Wat is het belangrijkste doel van het attribuut #[wasm_bindgen] in Rust bij het bouwen voor WebAssembly?
Samenvatting: functies voor het web
Goed gedaan! Je hebt geleerd hoe je Rust-functies voor WebAssembly definieert en beschikbaar maakt.
- Gebruik
#[wasm_bindgen]om functies voor export te markeren. - Zorg dat functies
pubzijn. wasm-pack buildcompileert je Rust naar WASM en JavaScript-verbindingscode.- Primitieve typen zoals
i32worden eenvoudig gekoppeld aan JavaScript-getallen.
Vervolgens gaan we dieper in op hoe JavaScript deze WASM-modules laadt en uitvoert.
Leer WebAssembly (WASM) voor performante toepassingen met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Rust-functies voor WASM schrijven” gratis?
Ja — de volledige tekst van “Rust-functies voor WASM schrijven” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus WebAssembly (WASM) voor performante toepassingen wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus WebAssembly (WASM) voor performante toepassingen bevat in totaal 4 lessen.
Wat leer ik in “Rust-functies voor WASM schrijven”?
Ontwikkel Rust-functies die naar WASM kunnen worden gecompileerd en aan een JavaScript-omgeving beschikbaar kunnen worden gesteld voor uitvoering. Je oefent met WebAssembly (WASM) voor performante toepassingen door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met WebAssembly (WASM) voor performante toepassingen te beginnen?
Ervaring vooraf is niet nodig. WebAssembly (WASM) voor performante toepassingen op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Rust-functies voor WASM schrijven”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over WebAssembly (WASM) voor performante toepassingen?
Ja. Elke les over WebAssembly (WASM) voor performante toepassingen bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Rust instellen voor WebAssembly
- Rust-functies voor WASM schrijven
- Efficiënte JS-interoperabiliteit met `wasm-bindgen`
- Foutafhandeling over de WASM-grens