Drupal et WASM (WebAssembly)

Dans un article daté du 2 juillet 2024, Matt Glaman démontre que Drupal 10 peut-être exécuté directement dans un navigateur à l’aide de la technologie WebAssembly.

Drupal peut désormais être exécuté côté client via WASM

WASM, ou WebAssembly, est un format de code binaire conçu pour s’exécuter dans les navigateurs web.

  • C’est un langage de bas niveau, proche du langage machine.
  • Il permet d’exécuter du code à une vitesse proche de celle des applications natives.
  • Il est conçu pour fonctionner aux côtés de JavaScript dans les navigateurs web.
  • WASM permet aux développeurs d’écrire des parties critiques de leurs applications web dans des langages comme C, C++ ou Rust, puis de les compiler en WebAssembly.
  • L’objectif principal est d’améliorer les performances des applications web complexes, comme les jeux ou les outils de traitement vidéo.

Pourquoi cela est important pour Drupal ?

Au-delà de la prouesse technique et du côté POC (Proof of Concept) de ce tour de force, qu’est-ce que cela peut impliquer pour l’avenir de Drupal ?

Faciliter la prise en main de Drupal : WASM permet aux utilisateurs d’exécuter Drupal directement dans leur navigateur sans installer ni configurer de serveur. Cela réduit considérablement la barrière à l’entrée pour les nouveaux utilisateurs, les développeurs débutants ou ceux qui souhaitent simplement explorer Drupal. Ils peuvent commencer à utiliser et tester le CMS immédiatement sans avoir à se soucier des complexités de l’hébergement ou de la configuration du serveur. En d’autres termes, cela pourrait aussi remplacer ou offrir une alternative moins coûteuse à simplytest.me !

Performances : WASM est conçu pour offrir des performances proches d’un code machine. Pour Drupal, cela peut signifier une exécution plus rapide de certaines opérations côté client, telles que le rendu des pages, le traitement des données ou les interactions utilisateur complexes. Cette amélioration des performances peut être particulièrement visible pour les applications Drupal dotées de nombreuses fonctionnalités interactives (cartographies, animations, jeux…).

Portabilité : Avec WASM, Drupal peut fonctionner sur n’importe quel appareil ou plateforme doté d’un navigateur Web moderne sans trop d’ajustements. Cela inclut les ordinateurs de bureau, les smartphones, les tablettes et même les appareils IoT potentiellement compatibles Web. Cette portabilité accrue peut élargir considérablement les cas d’utilisation de Drupal.

Démo et tests : WASM simplifie grandement le processus de démonstration Drupal. Les consultants, agences ou développeurs peuvent rapidement montrer une version fonctionnelle de Drupal à leurs clients ou collègues sans avoir à mettre en place un environnement de démonstration compliqué.
Développement et prototypage : Les développeurs peuvent utiliser la version WASM de Drupal pour prototyper rapidement des fonctionnalités, tester des configurations ou tester le CMS sans avoir à configurer un environnement.

Edge Computing : WASM ouvre la possibilité d’exécuter certaines parties de Drupal directement sur un CDN (Content Delivery Network) ou un serveur en périphérie du réseau. Cela peut permettre un traitement plus rapide de certaines requêtes, réduire la latence et améliorer l’expérience utilisateur, notamment pour les utilisateurs géographiquement éloignés du serveur principal. Tout ou une partie de Drupal pourrait ainsi être exécuté via des plateformes telles que Netlify ou Vercel par exemple.

Nouvelles capacités architecturales : L’utilisation de WASM peut conduire à de nouvelles façons de concevoir et de déployer des applications Drupal. Par exemple, on peut envisager des architectures hybrides où certaines parties de l’application s’exécutent côté client dans WASM, tandis que d’autres restent sur le serveur. Cela pourrait ouvrir la voie à des applications Drupal plus réactives, avec un meilleur équilibrage de charge entre client et serveur.

Ludovic, pour l'équipe bluedrop.fr.