in

11 façons surprenantes dont les développeurs utilisent Wasm

11 façons surprenantes dont les développeurs utilisent Wasm

Au début du navigateur, ce n'était qu'une fenêtre permettant d'afficher du texte et peut-être quelques images. C'était simplement une nouvelle façon de distribuer le même type de documents que l'on pouvait trouver sur une table basse, comme des magazines ou des livres.

Java, JavaScript et CSS ont changé tout cela. Il suffisait d'ajouter un peu de fonctionnalités complètes à Turing, et des programmeurs intelligents ont trouvé des moyens de dupliquer des traitements de texte, des jeux et bien plus encore dans ce qui était autrefois un conteneur de mots et d'images immobiles.

Malgré toute leur créativité, les applications exécutées dans les navigateurs restaient plus lentes et plus gourmandes en ressources que le code natif. WebAssembly a été conçu pour résoudre ce problème. Le code est précompilé, il n’y a donc pas besoin de quoi que ce soit juste à temps. Il est beaucoup plus petit, ce qui réduit les coûts de bande passante et les retards du réseau. Il offre une solution générale de bas niveau, permettant aux développeurs de fournir du code au navigateur sans s'abaisser au niveau de JavaScript, ni même avoir besoin de transpiler leur code.

Mais l'histoire ne s'arrête pas là. Les développeurs trouvent des moyens de faire plus avec WebAssembly que de fournir des pages Web animées et d'ajouter du zip aux publicités. WebAssembly, ou Wasm, est une technologie fondamentale qui a sa place dans les outils et l'infrastructure de haut en bas de toutes les piles. Voici quelques-uns des exemples récents les plus intrigants que nous ayons trouvés.

11 nouveaux cas d'utilisation pour WebAssembly

La liste des solutions intelligentes ne cesse de s’allonger. Cela a commencé lentement, mais il existe désormais des centaines d'applications surprenantes pour WebAssembly. Peut-être que l’un d’entre eux inspirera votre prochain projet :

  • Encore des applets
  • Décodage de la parole
  • Règles de modularité
  • Cahiers Wasm
  • L'analyse des données
  • Jeux vidéo anciens
  • Fonctionne en tant que service
  • Des bases de données plus grandes et plus proches
  • Fouiller dans les bases de données
  • Faire progresser le renseignement
  • Des plugins partout

Encore des applets

Avez-vous déjà entendu quelqu'un devenir nostalgique de l'époque où le code Java s'exécutait sous forme d'applets dans votre navigateur ? Probablement pas. Cette fonctionnalité native n’a jamais été livrée et a pratiquement disparu il y a des années. Mais vous pouvez désormais retrouver la magie avec CheerpJ, une version de la JVM compilée dans WebAssembly. C'est comme retourner dans le passé et regarder La matrice ou Chasse de bonne volontémais sans aucun des tracas des années 90, comme devoir rembobiner la cassette VHS avant de la retourner.

A Lire aussi  la baisse des prix continuent grâce au crash des cryptomonnaies

Décodage de la parole

Si vous avez l'impression que le navigateur est uniquement destiné au code de jouets, Ermine AI est un bon exemple de la façon dont les développeurs de Wasm ne se soucient pas de limitations aussi anciennes. L'outil regroupe un modèle d'IA complet pour la reconnaissance vocale qui s'exécutera localement, probablement entre les moments où le reste du code du navigateur gère certains éléments hérités. étiqueter. La page Web du modèle prévient que le démarrage peut être un peu lent car le téléchargement prend du temps.

Règles de modularité

Bien sûr, les conteneurs sont parfaits pour déployer des logiciels sur des serveurs, mais qu'en est-il d'autres endroits ? Container2Wasm est encore une expérience, mais il convertit tous vos fichiers en un seul blob Wasm qui peut s'exécuter n'importe où et exécuter des binaires WebAssembly. Si le code a besoin d'aide pour l'émulation, l'outil est également intégré au bon émulateur x86 ou RISK-V.

Cahiers Wasm

De nombreux data scientists fournissent leurs résultats dans des notebooks pris en charge par des projets comme Jupyter. Ceux-ci regroupent le code, les données et le texte de manière à permettre à tout lecteur d'essayer également le logiciel. Si vous souhaitez exécuter une commande ou appeler une fonction, il vous suffit de cliquer sur le bouton droit. C'est un moyen idéal de partager des logiciels dans un environnement ouvert et dynamique qui engage le lecteur.

La configuration d'un ordinateur portable repose généralement sur un serveur pour le calcul. Du point de vue de l'administrateur, cela signifie le configurer et s'assurer qu'il exécute Python. Désormais, les boîtes à outils basées sur Wasm telles que Marimo et Sphinx rendent le travail encore plus facile en vous permettant d'exécuter le code Python directement dans le navigateur. Tout ce dont vous avez besoin est une version Wasm de Python, Pyodide. La configuration du serveur est beaucoup plus simple et il n'est pas nécessaire de gérer les calculs de chacun à leur place.

L'analyse des données

Une autre chose que les data scientists aiment faire est d'utiliser R pour analyser leurs données, puis d'utiliser des outils comme Sweve pour les formater. Normalement, cela signifie installer R sur votre machine locale ou sur un serveur. Désormais, les outils basés sur Wasm comme WebR et R-universe transforment directement ce code R en Wasm, afin qu'il s'exécute directement dans le navigateur. Toute personne lisant votre analyse peut exécuter votre code R sans installer le langage ni avoir besoin de s'assurer que la bonne version est disponible.

A Lire aussi  c'est la fin des pages web en cache

Jeux vidéo anciens

Tout le monde se souvient des jeux de sa jeunesse mal dépensée. La bonne nouvelle est que vous pouvez toujours perdre des week-ends entiers à jouer à ces classiques, le tout sans avoir à essayer de recompiler l'ancien code C ou Pascal. Des projets comme Wasm-4 garantissent que tous vos anciens simulateurs de vol et jeux d’aventure préférés perdurent, directement dans votre navigateur. Qui n'aime pas les royaumes en deux dimensions dessinés avec des graphiques 8 bits ou filaires ?

Fonctionne en tant que service

La plupart des principaux services cloud prenant en charge les microservices et les solutions dites sans serveur sont naturellement intéressés par la prise en charge de Wasm. C'est un moyen idéal pour empaqueter une petite quantité de code qui peut démarrer rapidement car il est presque entièrement compilé. Les fournisseurs de cloud comme Fermyon, Cloudflare et Wasmer prennent en charge les modules WebAssembly de différentes manières. D'autres fournisseurs regroupent les modules avec des outils tels que WasmEdge et les exécutent à l'aide des fonctionnalités du runtime Node pour lancer le code WebAssembly.

Des bases de données plus grandes et plus proches

Dans le modèle traditionnel, la base de données est un processus sacré exécuté sur une machine distincte, de préférence dans son propre espace virtuel protégé dans un environnement blindé. C’est peut-être encore la réalité telle que nous la connaissons, mais les développeurs commencent à se poser des questions différentes. Pourquoi ne pas simplement intégrer une base de données complète et riche en fonctionnalités dans un navigateur afin que le code puisse utiliser toutes les fonctionnalités ? Bien sûr, le W3 nous a fourni des systèmes clé-valeur comme l'API WebStorage ou des modèles plus rapides et plus profonds comme IndexedDB, mais les deux sont limités. Des projets comme PGLite, DuckDB et SQLite 3 sont prêts à stocker des collections de données beaucoup plus importantes et à les analyser avec une gamme bien plus large de fonctions SQL. Ils sont plus rapides et proposent également des API de niveau inférieur afin que vous puissiez les lier à d'autres projets Wasm.

Fouiller dans les bases de données

Wasm n'est pas seulement un mécanisme de livraison permettant d'ajouter des bases de données plus volumineuses et plus performantes à vos pages Web. Certains développeurs inversent cette vision et intègrent du code Wasm à l'intérieur des bases de données pour ajouter des fonctions définies par l'utilisateur (UDF). SingleStore, par exemple, permet aux développeurs d'ajouter à la fois des fonctions UDF et leurs cousines, des fonctions table. D'autres outils de streaming de données comme InfinyOn et Redpanda vous permettent de transformer les informations avec les fonctions Wasm au fur et à mesure qu'elles circulent dans le système. Wasm pourrait finir par devenir le format dominant pour intégrer de nouvelles capacités de calcul partout où les données sont stockées.

A Lire aussi  Les gendarmes se montrent sur Waze, du ruban pour échapper aux radars : c'est le récap'

Faire progresser le renseignement

Bien que WebAssembly ne soit pas un choix naturel pour s'intégrer profondément dans les LLM ou les réseaux de neurones qui font partie de l'IA générative, cela ne signifie pas qu'il manque de place dans la pile. WasmEdge, par exemple, dispose de deux systèmes de plugins pour TensorFlow (ici et ici) et d'un pour PyTorch, afin que votre code puisse interagir parfaitement avec les calculs de l'IA. Dylibso a expérimenté la connexion d'IA comme ChatGPT avec des modules Extism. En d’autres termes, Wasm pourrait être l’outil dont vous avez besoin pour coller votre code avec les IA.

Des plugins partout

WebAssembly n'est pas réservé aux bases de données ou aux IA. De nombreux progiciels souhaitent permettre aux utilisateurs finaux d'ajouter facilement un peu de fonctionnalités pour étendre l'ensemble de fonctionnalités par défaut. Cela signifie développer une API qui permet au nouveau code de se mélanger à l’ancien code sans introduire de failles de sécurité ni détruire l’efficacité. Wasm s'avère être un très bon système pour ce faire car il a été conçu pour faire plus ou moins la même chose avec les pages Web. Il offre une sécurité, une brièveté et une efficacité assez bien conçues.

De nombreux logiciels le proposent déjà. Un rapide survol les trouve partout, des projets Apache à la migration de données Zendesk. Les programmeurs s'appuient sur des outils de base comme Extism pour prendre en charge tous les principaux langages et certains qui ne sont pas si courants avec les SDK et les bibliothèques PDK. Wasmi est une autre option qui se concentre sur les systèmes contraints ou embarqués. Quand vient le temps de générer les liaisons, les programmeurs se tournent vers fp-bindgen, wasm-bindgen ou wit-bindgen pour effectuer le travail de scut.

Conclusion

Y a-t-il une limite à ce que vous pouvez faire avec WebAssembly ? Pas vraiment. C'est à peu près le point. Wasm ouvre les portes pour que les utilisateurs puissent obtenir ce qu'ils veulent du logiciel. C'est une modularité rendue rapide, puissante et omniprésente.

Copyright © 2024 IDG Communications, Inc.

Laisser un commentaire

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

GIPHY App Key not set. Please check settings

Cameroun : Au moins, 10 blessés graves dans un accident de la route à Bandjoun

Cameroun : Au moins, 10 blessés graves dans un accident de la route à Bandjoun

Cet exercice simplissime à faire depuis votre canapé est parfait pour faire fondre la graisse des bras

Cet exercice simplissime à faire depuis votre canapé est parfait pour faire fondre la graisse des bras