🚧 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).