🚧 Attention, peinture fraîche !

Cette page a été traduite par une seule personne et n'a pas été relue et vérifiée par quelqu'un d'autre ! Les informations peuvent par exemple être erronées, être formulées maladroitement, ou contenir d'autres types de fautes.

Les crates que vous devriez connaître

Ceci est une compilation de crates très intéressantes que vous devriez connaître pour développer en Rust et WebAssembly.

Vous pouvez aussi parcourir les crates publiées sur crates.io dans la catégorie WebAssembly.

Interagir avec le JavaScript et le D.O.M.

wasm-bindgen | crates.io | dépôt

wasm-bindgen facilite les interactions de haut-niveau entre Rust et JavaScript. Il permet d'importer des choses en JavaScript dans du Rust et exporter des choses en Rust dans du JavaScript.

wasm-bindgen-futures | crates.io | dépôt

wasm-bindgen-futures est un pont entre les Promises du JavaScript et les Futures de Rust. Il peut faire la conversion dans les deux directions et s'avère utile lorsque nous travaillons avec des tâches asynchrones en Rust, et permet d'interagir avec les évènements du D.O.M. et aux opérations d'entrée/sortie.

js-sys | crates.io | dépôt

Ce sont des imports bruts de wasm-bindgen pour tous les types et méthodes globales en JavaScript, comme Object, Function, eval et compagnie. Ces API sont portables sur tous environnements ECMAScript standard, et pas uniquement que le Web, comme par exemple Node.js.

web-sys | crates.io | dépôt

Ce sont des imports bruts de wasm-bindgen pour toutes les API web, comme la manipulation du D.O.M., de l'utilisation de setTimeout, du Web GL, Web Audio, et autres.

Communication d'erreurs et journalisation

console_error_panic_hook | crates.io | dépôt

Cette crate vous permet de déboguer les paniques en wasm32-unknown-unknown, en fournissant ce déclencheur à la panique, qui renvoie les messages de panique dans console.error.

console_log | crates.io | dépôt

Cette crate fournit une infrastructure dorsale pour la crate log qui renvoie les journaux dans la console de développement.

Allocation dynamique

wee_alloc | crates.io | dépôt

wwe_alloc signifie Wasm-Enabled, Elfin Allocator, ce qui signifie grossièrement en français Allocateur de Elfin conçu pour le Wasm. C'est une implémentation d'allocateur de petite taille (un .wasm d'environ 1Ko non compressé) pour l'utiliser lorsque le poids du code est plus important que la performance d'allocation.

Exploration et génération de binaires .wasm

parity-wasm | crates.io | dépôt

C'est une bibliothèque de bas-niveau en WebAssembly pour sérialiser, désérialiser, et compiler des binaires .wasm. Elle a un bon support des sections personnalisées les plus connues, comme les sections "names" et "reloc.WHATEVER".

wasmparser | crates.io | dépôt

Une bibliothèque simple, pilotée par les évènements pour explorer les fichiers binaires de WebAssembly. Elle fournit les correspondances d'octets pour chaque élément exploré, ce qui s'avère utile pour interpréter les relocs, par exemple.

Interpréter et compiler du WebAssembly

wasmi | crates.io | dépôt

L'interpréteur WebAssembly de Parity, qui peut être embarqué dans un projet.

cranelift-wasm | crates.io | dépôt

Compile le WebAssembly dans le code machine natif de l'hôte. Elle fait partie du projet de générateur de code Cranelift (initialement nommé Cretonne).