[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"site-settings":3,"article-wasi-webassembly-serveur-2026":15},{"email":4,"phone":5,"bio":6,"addressCity":7,"addressCountry":8,"socialGithub":9,"socialLinkedin":10,"socialMedium":11,"availabilityStatus":12,"availabilityMessage":13,"isAvailable":14},"contact@aitaddajuba.fr","+33 6 95 21 71 97","Développeur fullstack chez DeviProp, j'accompagne les produits SaaS de la conception à la production. Passionné par l'architecture backend, je conçois des solutions robustes et évolutives en travaillant main dans la main avec les équipes produit et design.","Paris","France","https:\u002F\u002Fgithub.com\u002Fjubskan3ki","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fjuba-aitadda\u002F","","available","Ouvert aux opportunités CDI & missions freelance",true,{"id":16,"title":17,"slug":18,"seoTitle":19,"metaDescription":20,"excerpt":21,"content":22,"image":213,"category":214,"tags":215,"date":223,"updatedAt":224,"readTime":225,"views":226,"isPublished":14},21,"WASI et WebAssembly en 2026 : quand Wasm sort enfin du navigateur","wasi-webassembly-serveur-2026","WASI et WebAssembly en 2026 : Wasm sort enfin du navigateur","WASI 0.2 stable, Component Model, WASI 1.0 en approche : comment WebAssembly devient une plateforme serveur portable, sécurisée et multi-langage en 2026.","WebAssembly n'est plus limité au navigateur. Avec WASI 0.2 stabilisé, le Component Model, et WASI 1.0 en approche, Wasm devient une plateforme serveur crédible.",[23,26,28,31,35,44,46,48,50,57,59,63,65,67,69,88,90,92,94,96,99,101,106,108,110,140,142,144,146,149,151,153,155,157,159,161,163,165,167,172,174,176,178,180,182,200,202,207,209,211],{"type":24,"content":25},"paragraph","# WASI et WebAssembly en 2026 : quand Wasm sort enfin du navigateur",{"type":24,"content":27},"WebAssembly est né en 2017 avec une promesse simple : exécuter du code quasi natif dans le navigateur, à côté de JavaScript. Près de dix ans plus tard, l'histoire la plus intéressante ne se joue plus dans le navigateur. Portée par **WASI** (WebAssembly System Interface) et le **Component Model**, la technologie s'installe sur les serveurs, à la périphérie (*edge*), dans les plugins et jusque dans Kubernetes.",{"type":29,"content":30},"blockquote","**En une phrase** : en 2026, Wasm n'est plus « le bytecode du web ». C'est un format de déploiement universel, sandboxé et portable.",{"type":32,"level":33,"content":34},"heading",2,"TL;DR",{"type":36,"items":37,"ordered":43},"list",[38,39,40,41,42],"**WASI** donne enfin à Wasm un accès *standardisé* et *sécurisé* au système (fichiers, réseau, horloge) hors du navigateur.","**WASI 0.2** (janvier 2024) est stable ; **WASI 0.3** ajoute l'**asynchrone natif**, le dernier chaînon manquant.","Le **Component Model** rend Wasm réellement composable et **multi-langage**.","En production aujourd'hui : **edge\u002Fserverless**, **plugins**, **Kubernetes** - pas encore le backend généraliste.","À évaluer dès maintenant pour les plugins et l'edge ; à surveiller pour le reste.",false,{"type":32,"level":33,"content":45},"Pourquoi sortir Wasm du navigateur ?",{"type":24,"content":47},"Dans le navigateur, un module Wasm ne peut presque rien faire seul : pas d'accès au système de fichiers, pas de socket réseau, pas d'horloge - **tout passe par le JavaScript hôte**. C'est précisément ce que WASI vient corriger : définir une interface standard et *capability-based* entre un module Wasm et le système qui l'exécute.",{"type":24,"content":49},"Les arguments qui ont fait basculer l'industrie :",{"type":36,"items":51,"ordered":43},[52,53,54,55,56],"**Portabilité réelle** - un même binaire `.wasm` tourne sur Linux, macOS, Windows, ARM ou x86 sans recompilation","**Sécurité par défaut** - modèle à capacités, *deny by default* : un module ne voit que les fichiers, variables d'environnement et sockets qu'on lui accorde explicitement","**Démarrage à froid quasi instantané** - quelques microsecondes à quelques millisecondes, contre des centaines de millisecondes pour un conteneur","**Empreinte minuscule** - des binaires de quelques centaines de Ko, sans OS embarqué","**Multi-langage** - Rust, C\u002FC++, Go, C#, Python, JavaScript, Swift… compilent vers la même cible",{"type":24,"content":58},"Concrètement, lancer un binaire WASI ressemble à ceci - et notez le `--dir` : sans cette autorisation explicite, le module **ne voit aucun fichier**.",{"type":60,"content":61,"language":62},"code","# Compilation Rust vers WASI\ncargo build --target wasm32-wasip2 --release\n\n# Exécution sandboxée : on n'accorde QUE l'accès au dossier courant\nwasmtime run --dir=. .\u002Ftarget\u002Fwasm32-wasip2\u002Frelease\u002Fapp.wasm\n\n# Tout le reste (réseau, autres dossiers, env) est refusé par défaut","bash",{"type":29,"content":64},"En 2019, Solomon Hykes, cofondateur de Docker, résumait l'enjeu d'une phrase devenue culte :\n« *Si WASM+WASI avait existé en 2008, nous n'aurions pas eu besoin de créer Docker.* »\nEn 2026, cette boutade ressemble de plus en plus à une feuille de route.",{"type":32,"level":33,"content":66},"WASI : de Preview 1 à 0.3",{"type":24,"content":68},"L'évolution de WASI explique en grande partie la maturité atteinte aujourd'hui.",{"rows":70,"type":83,"headers":84},[71,75,79],[72,73,74],"**Preview 1** (`wasi_snapshot_preview1`)","2019","Première interface, calquée sur POSIX - encore la plus répandue",[76,77,78],"**WASI 0.2**","Janvier 2024","Réécriture sur le **Component Model**, interfaces décrites en **WIT**",[80,81,82],"**WASI 0.3**","En stabilisation","**Async natif**, remplaçant le modèle historique par *polling*","table",[85,86,87],"Version","Sortie","Apport clé",{"type":29,"content":89},"⚠️ **Attention aux numéros de version.** « Preview 1 » et « Preview 2 » désignent des jalons historiques, tandis que la numérotation moderne suit le schéma 0.2.x \u002F 0.3. Beaucoup d'outils supportent encore Preview 1 *en parallèle* de 0.2 ; vérifiez toujours la cible attendue par votre runtime.",{"type":32,"level":33,"content":91},"Le Component Model : la vraie révolution",{"type":24,"content":93},"C'est sans doute l'apport le plus structurant. Là où un module Wasm classique n'échange que des entiers et des flottants via la mémoire linéaire, un **composant** expose des interfaces typées de haut niveau (chaînes, records, listes, résultats, ressources) décrites en **WIT** (*WebAssembly Interface Types*).",{"type":24,"content":95},"Une interface WIT ressemble à un contrat lisible, indépendant du langage :",{"type":60,"content":97,"language":98},"package portfolio:greeter@1.0.0;\n\ninterface greet {\n    record visitor {\n        name: string,\n        locale: string,\n    }\n\n    \u002F\u002F Retourne un message, ou une erreur typée\n    hello: func(v: visitor) -> result\u003Cstring, string>;\n}\n\nworld app {\n    export greet;\n}","wit",{"type":24,"content":100},"Ce contrat apporte trois choses décisives :",{"type":36,"items":102,"ordered":14},[103,104,105],"**L'interopérabilité multi-langage** - un composant en Rust peut importer une interface implémentée en Go ou en Python, sans glue manuelle","**La composition** - on assemble plusieurs composants comme des briques Lego, chacun restant sandboxé","**Des contrats stables** - l'interface WIT sert de frontière de version, indépendamment du langage d'implémentation",{"type":24,"content":107},"Des outils comme `wit-bindgen` (génération de bindings), `componentize-py` (Python → composant) ou `ComponentizeJS` \u002F StarlingMonkey (JavaScript → composant) rendent ce modèle utilisable au quotidien.",{"type":32,"level":33,"content":109},"Les runtimes : un écosystème mûr",{"rows":111,"type":83,"headers":136},[112,116,120,124,128,132],[113,114,115],"**Wasmtime**","Référence du Component Model, JIT + AOT (Cranelift)","Bytecode Alliance \u002F Fastly",[117,118,119],"**WasmEdge**","Optimisé edge & IA, projet CNCF","Second State \u002F CNCF",[121,122,123],"**Wasmer**","Multi-backend, extension WASIX, registre de packages","Wasmer",[125,126,127],"**Wazero**","100 % Go, zéro dépendance C, intégration native","Tetrate",[129,130,131],"**Spin**","Framework serverless orienté microservices Wasm","Fermyon",[133,134,135],"**wasmCloud**","Plateforme d'applications distribuées par acteurs","CNCF",[137,138,139],"Runtime","Particularité","Porté par",{"type":24,"content":141},"Cette diversité - avec plusieurs projets sous l'égide de la **CNCF** et de la **Bytecode Alliance** - est un signal fort de maturité : Wasm côté serveur n'est plus une expérience, c'est une infrastructure.",{"type":32,"level":33,"content":143},"Là où Wasm est déjà en production",{"type":24,"content":145},"Loin du *hype*, des usages concrets tournent déjà à grande échelle.",{"type":32,"level":147,"content":148},3,"Edge \u002F serverless",{"type":24,"content":150},"Fastly Compute exécute du Wasm en production depuis des années ; **Fermyon Spin** et **wasmCloud** poussent le modèle « fonction Wasm » plus loin, avec des démarrages à froid en millisecondes.",{"type":32,"level":147,"content":152},"Plugins extensibles",{"type":24,"content":154},"Le proxy **Envoy** charge des filtres `proxy-wasm` ; **Extism** propose un système de plugins universel embarquable dans presque n'importe quelle application.",{"type":32,"level":147,"content":156},"Personnalisation marchande",{"type":24,"content":158},"**Shopify Functions** laisse les développeurs étendre la logique métier via des modules Wasm sandboxés et limités en temps CPU.",{"type":32,"level":147,"content":160},"Extension applicative",{"type":24,"content":162},"De plus en plus de produits SaaS et de bases de données exposent une couche d'extension Wasm plutôt que d'embarquer un interpréteur maison.",{"type":32,"level":33,"content":164},"Wasm et Kubernetes : la convergence",{"type":24,"content":166},"L'intégration avec l'écosystème conteneurs s'est nettement clarifiée :",{"type":36,"items":168,"ordered":43},[169,170,171],"**Docker + Wasm** - Docker Desktop sait lancer des charges Wasm via des shims `containerd`, aux côtés des conteneurs Linux classiques","**runwasi & shims containerd** - exécutent des modules Wasm comme des workloads de premier ordre","**SpinKube** - déploie des applications Spin directement sur Kubernetes, avec des pods qui démarrent en millisecondes",{"type":29,"content":173},"Le scénario qui se dessine n'est pas « Wasm **remplace** les conteneurs » mais « Wasm **complète** les conteneurs » : on garde Kubernetes comme plan de contrôle, et on choisit le runtime - conteneur ou Wasm - selon le besoin : densité, démarrage à froid, sécurité.",{"type":32,"level":33,"content":175},"WebAssembly 2.0 : le cœur du langage progresse",{"type":24,"content":177},"En parallèle de WASI, la spécification du cœur de Wasm a beaucoup avancé : **SIMD**, *multi-value*, *reference types*, *tail calls*, *exception handling*, *threads*, **memory64** et surtout **WasmGC**.",{"type":24,"content":179},"Ce dernier - le ramasse-miettes intégré - change la donne pour les langages managés : Java, Kotlin, Dart\u002FFlutter ou C# peuvent désormais compiler vers Wasm **sans embarquer leur propre GC**, avec des binaires bien plus légers.",{"type":32,"level":33,"content":181},"Faut-il s'y mettre en 2026 ?",{"rows":183,"type":83,"headers":196},[184,188,192],[185,186,187],"Système de **plugins \u002F extensions**","✅ Foncez","Meilleur choix dispo : sandbox solide, multi-langage (Extism, Component Model)",[189,190,191],"**Edge \u002F serverless**","✅ Sérieusement","Avantage net sur le démarrage à froid (Spin, Fastly, wasmCloud)",[193,194,195],"**Backend généraliste**","⏳ Patience","Écosystème réseau\u002FDB encore jeune - WASI 0.3 et l'async natif changeront la donne",[197,198,199],"Cas d'usage","Verdict","Pourquoi",{"type":24,"content":201},"Quelques points de vigilance pour un backend classique :",{"type":36,"items":203,"ordered":43},[204,205,206],"**Écosystème de bibliothèques** - tout n'est pas encore portable proprement vers WASI 0.2, surtout côté réseau et bases de données","**Maturité par langage** - Rust est en tête ; Go et C# progressent vite ; Python et JS sont utilisables, avec des compromis","**Outillage** - encore jeune comparé à l'écosystème conteneurs, mais il se stabilise rapidement",{"type":32,"level":33,"content":208},"Conclusion",{"type":24,"content":210},"WebAssembly tient enfin sa promesse hors du navigateur. Avec **WASI 0.2 stabilisé**, l'**asynchrone natif** en approche dans WASI 0.3, un **Component Model** qui rend le multi-langage réellement composable et une intégration crédible à **Kubernetes**, 2026 marque le moment où Wasm cesse d'être une curiosité côté serveur pour devenir une option d'architecture sérieuse.",{"type":24,"content":212},"Il ne remplacera ni Docker ni les conteneurs du jour au lendemain - mais, comme Bun et Biome côté JavaScript, il **redéfinit les attentes** : portabilité totale, sécurité par défaut et démarrage instantané. Ne pas l'évaluer aujourd'hui, ce serait passer à côté de la prochaine couche d'infrastructure.","https:\u002F\u002Fmedia.aitaddajuba.fr\u002Farticle\u002Fwasi-et-webassembly-en-2026-quand-wasm-sort-enfin-du-navigateur\u002Farticle-2.webp","devops",[216,217,218,219,220,221,222],"Component Model","Edge Computing","Rust","Sandbox","WASI","Wasm","WebAssembly",null,"2026-06-14T16:57:06.552018+02:00",9,109]