Wasmer 3.0 arrive avec des améliorations dans WASI, les API, la gestion de la mémoire et plus encore

Wasmer

Wasmer est un environnement d'exécution WebAssembly rapide et sécurisé qui permet aux conteneurs ultra-légers de s'exécuter n'importe où : du bureau au cloud, en passant par les périphériques et les appareils IoT

Après presque 6 mois depuis la version précédente, la nouvelle version de Wasmer 3.0 est sortie, la troisième version majeure du projet qui développe un runtime pour exécuter les modules WebAssembly qui peut être utilisé pour créer des applications universelles qui peuvent s'exécuter sur différents systèmes d'exploitation, ainsi que l'exécution de code non fiable.

La possibilité d'exécuter la même application sur différentes plates-formes il est fourni en compilant le code dans un code intermédiaire WebAssembly de bas niveau qui peut s'exécuter sur n'importe quel système d'exploitation ou être intégré dans des programmes dans d'autres langages de programmation. Les programmes sont des conteneurs légers qui exécutent le pseudocode WebAssembly.

Ces conteneurs ne sont pas liés au système d'exploitation et peuvent contenir du code écrit à l'origine dans n'importe quel langage de programmation.

Pour traduire WebAssembly dans le code machine de la plate-forme actuelle, vous prend en charge la connexion de différents backends de construction (Singlepass, Cranelift, LLVM) et moteurs (utilisant JIT ou générant du code machine). Le contrôle d'accès et l'interaction avec le système sont fournis par l'API WASI (WebAssembly System Interface), qui fournit des interfaces de programmation pour travailler avec des fichiers, des sockets et d'autres fonctions fournies par le système d'exploitation.

Plate-forme vous permet d'atteindre des performances d'exécution des applications proches de celles des builds natifs.

Principales nouveautés de Wasmer 3.0

Dans cette nouvelle version de Wasmer 3.0, le possibilité de créer des fichiers exécutables natifs pour n'importe quelle plate-forme. La commande "wasmer créer-exe» a été entièrement repensé pour convertir un fichier de code intermédiaire WebAssembly en exécutables autonomes pour les plates-formes Linux, Windows et macOS pouvant être exécutés sans installer Wasmer.

Une autre nouveauté qui est présentée est que le possibilité d'exécuter des packages WAPM situé dans le répertoire wapm.io en utilisant la commande "wasmer run". Par exemple, exécutez "wasmer exécuter python/python» téléchargera le package python à partir du référentiel wapm.io et l'exécutera.

L'API Wasmer Rust a été entièrement repensée, modifiant la façon dont il gère la mémoire et offrant la possibilité de stocker des objets Wasm en toute sécurité dans la structure Store.

Également mis en évidence dans cette nouvelle version de Wasmer 3.0 est le implémentation améliorée de l'API WASI (WebAssembly System Interface), en plus de corriger les problèmes dans l'API WASI pour travailler avec le système de fichiers. Les types internes ont été repensés à l'aide de WAI (WebAssembly Interfaces), ce qui permettra à l'avenir d'implémenter une série de nouvelles fonctionnalités.

En plus de cela, les moteurs ont également été simplifiés, puisqu'au lieu de moteurs séparés pour le JIT, la liaison dynamique et statique (Universal, Dylib, StaticLib), offre maintenant un moteur commun et charge et enregistre le code qui est contrôlé au niveau du paramétrage.

Pour désérialiser les artefacts, le framework rkyv est utilisé, qui fournit une opération de copie zéro, c'est-à-dire qu'il ne nécessite aucune allocation de mémoire supplémentaire et effectue la désérialisation en utilisant uniquement le tampon initialement fourni.

De l' autres changements qui se démarquent de cette nouvelle version:

  • L'utilisation de rkyv a considérablement augmenté la vitesse de démarrage.
  • Le compilateur Singlepass a été amélioré pour prendre en charge les fonctions à plusieurs valeurs, améliorer la fiabilité et ajouter la prise en charge des infrastructures de gestion des exceptions.
  • L'ensemble des composants wasmer-js a été implémenté pour exécuter Wasmer dans un navigateur Web et interagir avec lui à partir de JavaScript en utilisant la bibliothèque wasm-bindgen.
  • Une nouvelle structure a été proposée. Mémoire visuelle qui permet de lire et d'écrire des données dans une zone mémoire linéaire.

Enfin, il convient de mentionner que les programmes sont distribués sous la forme de modules WebAssembly ordinaires, qui peuvent être gérés à l'aide du gestionnaire de packages WAPM. Wasmer est également disponible en tant que bibliothèque pouvant être utilisée pour intégrer du code WebAssembly dans les programmes Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir et Java.

Le code du projet est écrit en Rust et est distribué sous la licence MIT et vous pouvez en savoir plus, dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.