Wasmer 5.0 est disponible, un ensemble d'outils pour créer des applications basées sur WebAssembly

La version 5.0 du projet Wasmer a Ă©tĂ© lancĂ©e, dĂ©veloppant un runtime pour l'exĂ©cution de modules WebAssembly, pouvant ĂȘtre utilisĂ© pour crĂ©er des applications universelles capables de fonctionner sur diffĂ©rents systĂšmes d'exploitation. Wasmer peut Ă©galement ĂȘtre utilisĂ© pour l'exĂ©cution isolĂ©e de blocs de code non fiables dans le cadre d'applications classiques. Le code du projet est Ă©crit en Rust et est distribuĂ© sous licence MIT.

La possibilitĂ© de lancer une application sur diffĂ©rentes plateformes est rĂ©alisĂ©e Ă  travers la compilation en code intermĂ©diaire bas niveau WebAssembly, qui peut ĂȘtre exĂ©cutĂ© sur n'importe quel systĂšme d'exploitation ou intĂ©grĂ© dans des programmes d'autres langages de programmation. Les programmes sont des conteneurs lĂ©gers dans lesquels est exĂ©cutĂ© le pseudo-code WebAssembly. Ces conteneurs ne dĂ©pendent pas du systĂšme d'exploitation et peuvent inclure du code initialement Ă©crit dans n'importe quel langage de programmation.

Pour exécuter le code intermédiaire WebAssembly ou le traduire en code machine de la plateforme cible, différents backends sont proposés :

  • Backend basĂ© sur le compilateur Singlepass, optimal pour une utilisation dans les blockchains.
  • Backend basĂ© sur le gĂ©nĂ©rateur de code Cranelift, optimal pour une utilisation lors du dĂ©veloppement.
  • Backend basĂ© sur le compilateur LLVM, optimal pour une utilisation dans les dĂ©ploiements en production.
  • Backend pour l'exĂ©cution dans un navigateur web.
  • Backend basĂ© sur le moteur JavaScript JavascriptCore, optimal pour une utilisation sur la plateforme macOS.
  • Backend basĂ© sur le moteur JavaScript V8, optimal pour les applications sur les plateformes iOS et Android.
  • Backend basĂ© sur l'interprĂ©teur Wasmi, optimal pour les blockchains et les projets Rust n'utilisant pas la bibliothĂšque standard (nostd).
  • Backend basĂ© sur le runtime WAMR, optimal pour la plateforme iOS.

Les applications sont isolées du systÚme principal dans un environnement sandbox et n'ont accÚs qu'aux fonctionnalités déclarées. Pour l'isolement, un mécanisme basé sur la gestion des capacités est appliqué : pour chaque opération sur les ressources (fichiers, répertoires, sockets, appels systÚme, etc.), l'application doit recevoir les autorisations appropriées. La gestion des accÚs et l'interaction avec le systÚme sont assurées par l'API WASI (WebAssembly System Interface), fournissant des interfaces de programmation pour travailler avec des fichiers, des sockets et d'autres fonctions systÚme.

La plateforme permet d'atteindre des performances d'exécution des applications proches de celles des builds natifs. Grùce au Native Object Engine pour le module WebAssembly, il est possible de générer du code machine nécessitant un runtime minimal tout en conservant toutes les fonctionnalités d'isolation du sandbox. Une livraison de programmes précompilés avec Wasmer intégré est possible. Pour la création d'extensions et de compléments, des API Rust et Wasm-C-API sont proposées.

Pour exécuter un conteneur WebAssembly, il suffit d'installer le runtime Wasmer sur le systÚme, fourni sans dépendances externes (« curl https://get.wasmer.io -sSfL | sh »), puis de lancer le fichier nécessaire (« wasmer test.wasm »). Les programmes sont distribués sous forme de modules WebAssembly ordinaires, que l'on peut gérer avec le gestionnaire de paquets WAPM. Wasmer est également disponible sous forme de bibliothÚque, que l'on peut utiliser pour intégrer du code WebAssembly dans des programmes écrits en Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir et Java.

Les principales nouveautés de Wasmer 5.0 :

  • Il est dĂ©sormais possible d'utiliser des interprĂ©teurs WebAssembly.
  • Ajout d'un backend expĂ©rimental basĂ© sur l'interprĂ©teur lĂ©ger Wasmi, permettant d'exĂ©cuter du code intermĂ©diaire WebAssembly dans des environnements Ă  ressources limitĂ©es.
  • Ajout d'un backend expĂ©rimental basĂ© sur le runtime WebAssembly WAMR (WebAssembly Micro Runtime), optimisĂ© pour une consommation minimale de ressources et adaptĂ© Ă  une utilisation sur des appareils avec peu de mĂ©moire vive.
  • Ajout d'un backend expĂ©rimental reposant sur le moteur JavaScript V8, utilisĂ© dans les navigateurs sur la base de code Chromium. Le principal avantage de ce backend est la possibilitĂ© d'utiliser le dĂ©bogueur intĂ©grĂ© et les outils de dĂ©veloppement web, ainsi que l'accĂšs Ă  des fonctionnalitĂ©s WebAssembly avancĂ©es dans V8, telles que le traitement des exceptions et la collecte des dĂ©chets.
  • Ajout d'un support expĂ©rimental pour l'architecture Loongarch64 dans le backend utilisant LLVM.
  • Ajout du support pour la plateforme iOS, disponible avec les backends WAMR, Wasmi et V8.
  • Le support du compilateur Emscripten a Ă©tĂ© arrĂȘtĂ©.
  • Mise Ă  jour des dĂ©pendances, y compris LLVM 18, le gĂ©nĂ©rateur de code Cranelift 27 et le framework rkyv 0.8.
  • Optimisation des performances. Par exemple, dans les opĂ©rations de dĂ©sĂ©rialisation des modules, une augmentation de performance allant jusqu'Ă  50 % a Ă©tĂ© observĂ©e.
    Wasmer 5.0 est disponible, un ensemble d'outils pour créer des applications basées sur WebAssembly
    Wasmer 5.0 est disponible, un ensemble d'outils pour créer des applications basées sur WebAssembly
    Wasmer 5.0 est disponible, un ensemble d'outils pour créer des applications basées sur WebAssembly
    Wasmer 5.0 est disponible, un ensemble d'outils pour créer des applications basées sur WebAssembly
    Wasmer 5.0 est disponible, un ensemble d'outils pour créer des applications basées sur WebAssembly
    Wasmer 5.0 est disponible, un ensemble d'outils pour créer des applications basées sur WebAssembly
    Wasmer 5.0 est disponible, un ensemble d'outils pour créer des applications basées sur WebAssembly

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster