IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

La version 3.0 de Wasmer, un runtime open source pour l'exécution de WebAssembly sur un serveur, est disponible,
Elle apporte une simplification dans le fonctionnment des moteurs

Le , par Bruno

2PARTAGES

3  0 
L’équipe de développement de Wasmer a publié le 23 novembre la version 3.0 du runtime WebAssembly (Wasm) côté serveur capable d'exécuter Nginx. « Aujourd'hui, nous sommes très heureux de lancer Wasmer 3.0, après trois mois de travail depuis notre première alpha », a déclaré Syrus Akbary, fondateur et PDG de Wasmer.

Akbary et son équipe sont réunis au sein d'une entreprise du même nom, Wasmer, et estiment que la raison d'être de leur outil Wasmer est que WebAssembly est en passe de devenir un outil incontournable dans le développement.


WebAssembly (Wasm) est un format d'instruction binaire pour une machine virtuelle basée sur une pile. Wasm est conçu comme une cible de compilation portable pour les langages de programmation, permettant le déploiement sur le Web pour des applications client et serveur. Wasmer quant à lui est un runtime open source permettant d'exécuter WebAssembly sur le serveur. Selon les explications d'Akbary, il permet d'utiliser des conteneurs super-légers basés sur WebAssembly qui peuvent fonctionner n'importe où : du bureau au cloud et aux périphériques IoT, et également intégrés dans n'importe quel langage de programmation.

« Nous pensons que WebAssembly sera un élément crucial pour l'avenir de l'exécution et de la conteneurisation des logiciels (non seulement à l'intérieur du navigateur, mais aussi à l'extérieur) », a expliqué Akbary pour justifier l'utilité de son outil. Selon lui, en exploitant Wasm pour la conteneurisation de logiciels, il crée avec son équipe des binaires universels capables de fonctionner partout sans aucune modification, y compris dans des systèmes d'exploitation comme Linux, macOS, Windows, et aussi dans les navigateurs Web.

Voici, ci-dessous, les nouveautés qu’apporte la version 3.0 de Wasmer :

wasmer est désormais capable d'exécuter des paquets WAPM directement via wasmer run

Il est maintenant possible de passer n'importe quel paquet publié sur wapm.io au cli wasmer. Par exemple, wasmer run python/python téléchargera et exécutera directement le paquet python depuis le registre de paquets de wapm.io.

API et gestion de la mémoire

L'API Rust de Wasmer a été reconstruite de fond en comble. Grâce à la nouvelle API et au nouveau style de gestion de la mémoire, on peut maintenant stocker en toute sécurité les objets Wasmer dans le Store.

Les instructions de stockage sont utilisées pour stocker un nombre en mémoire. Pour les nombres entiers, il est également possible de stocker un nombre de type large comme un nombre plus étroit en mémoire, par exemple, stocker un nombre de 32 bits dans un emplacement de 8 bits (i32.store8). Si le nombre ne rentre pas dans le type de nombre plus étroit, il sera wrappé.

Dans un contexte de programmation, le terme wrapper fait référence à des programmes ou à des codes qui enveloppent littéralement d'autres composants du programme. L'un des principaux changements dans la version 3.0 est que Store possède maintenant tous les objets WebAssembly ; ainsi les exportations comme Memory sont simplement des handles vers l'objet mémoire réel dans le Store. Pour lire/écrire une telle valeur, nous aurons toujours besoin d'une référence Store.

Un nouveau MemoryView (similaire à JS) a également été introduit et wasmer-js (qui exécute Wasmer dans le navigateur avec wasm-bindgen) a été mis au même niveau de fonctionnalités que wasmer-sys (qui exécute Wasmer en natif).

Activation des valeurs multiples dans le compilateur singlepass

Le compilateur singlepass a reçu de nouvelles améliorations :

  • prise en charge des fonctions à valeurs multiples ;
  • amélioration de la robustesse du compilateur ;
  • ajout d'un support pour les frameworks de gestion des exceptions.

Moteurs simplifiés

L’équipe de Akbary a apporté une simplification dans le fonctionnement des moteurs. Maintenant, un seul moteur est nécessaire (bien que le moteur puisse utiliser différents artefacts pour charger/stocker le code).

Akbary a fait simplifier tous les moteurs en un seul pour permettre une réutilisation plus facile du code. Wasmer utilisait auparavant le concept de différents moteurs : dylib, universal, et plus encore.

Prise en charge de la création d'exécutables pour toute plateforme

La sous-commande create-exe de Wasmer a été réorganisé permettant à Wasmer de transformer un fichier WebAssembly en un exécutable natif de Windows, Linux ou Mac OS. Cela permet de distribuer des exécutables aux utilisateurs, sans qu'ils aient à installer Wasmer eux-mêmes. Cette fonctionnalité est implémentée en plus des capacités de compilation croisée de Zig.

Source : Wasmer

Et vous ?

Que pensez-vous de Wasmer ?

Quelle amélioration vous intéresse dans la version 3.0 ?

Quelles sont vos attentes pour un tel runtime ?

Voir aussi :

L'édition 2022 du rapport sur l'état du développement de WebAssembly révèle que Rust est le langage le plus utilisé et le plus recherché et les applications Web sont le cas d'utilisation principal

Wasmer : un runtime open source pour l'exécution de WebAssembly sur un serveur, tout en prenant en charge l'API Wasm-C

Une erreur dans cette actualité ? Signalez-le nous !