Intermédiaire·2 min·14 juin 2026

PyPI accepte enfin les packages Python compilés en WebAssembly

🎧 Résumé audio0:00 / 0:00
Tu peux maintenant publier du Python compilé en WebAssembly sur PyPI, comme n'importe quel package normal.
PyPI accepte enfin les packages Python compilés en WebAssembly

Pourquoi ça compte pour toi

Jusqu'à présent, les 300+ packages Pyodide étaient maintenus à la main par une poignée de devs — un goulot d'étranglement absolu. Désormais, n'importe quel créateur peut compiler du C, du Rust ou du C++ en WebAssembly, l'empaqueter en wheel Python et le distribuer via PyPI sans intermédiaire. C'est ouvert à tous. Si tu as une lib C/C++/Rust et que tu veux la rendre utilisable en Python dans le navigateur, tu as maintenant un chemin clair.

Ce qu'il faut retenir

  • 1.Pyodide 314.0 permet de publier des wheels WASM directement sur PyPI (standard PEP 783)
  • 2.28 packages le font déjà (onnx, pydantic_core, yaml-rs, imgui-bundle, etc.)
  • 3.Fini le goulot : pas de revue manuelle, juste ta CI/CD et tu publies

Tu galères avec le jargon ?

Lis la version réécrite en mode débutant — toutes les idées, sans le jargon.

Pourquoi ça change la donne

Pyodide te permet de faire tourner du Python pur dans le navigateur (via WebAssembly). Mais dès que tu veux utiliser une lib native — NumPy, un binding Rust, peu importe — tu étais bloqué. L'équipe Pyodide devait compiler et héberger chaque package elle-même. Résultat : des centaines de paquets en attente, zéro scalabilité.

Maintenant ? Tu compiles ton wheel WASM avec cibuildwheel, tu le tagges pyemscripten_2026_0_wasm32, et tu le pousses sur PyPI comme un wheel Linux classique. Terminé.

L'exemple concret : luau-wasm

Simon Willison (journaliste tech passionné par Pyodide) a testé le truc en empaquetant Luau, un langage Lua rapide écrit en C++ par Roblox. Résultat :

import micropip
await micropip.install("luau-wasm")
import luau_wasm

print(luau_wasm.execute(r'''
local animals = {"fox", "owl", "frog"}
table.sort(animals, function(a, b) return #a < #b end)
for i, name in animals do
  print(i .. ". " .. name)
end
'''))

C'est du Python, tournant en WASM dans ton navigateur, exécutant du Lua compilé. 276 KB en tout.

Qui publie déjà ?

Les 28 premiers adoptants :

  • Libs Rust : uuid7-rs, yaml-rs, toml-rs, uuid_utils
  • Libs de calcul : onnx, pydantic_core, arro3 (Apache Arrow), powerfit-em
  • Divers : imgui-bundle, cadquery, typst, robotraconteur

L'écosystème démarre à zéro mais avec un cadre clair, ça devrait s'accélérer.

Pour qui ?

  • Créateurs de libs C/C++/Rust : tu peux enfin toucher les devs Python/web sans maintenir deux distributions.
  • Devs web Python : fini l'attente pour une nouvelle version d'une lib — elle arrive sur PyPI comme les autres.
  • Startups low-code/no-code : tu peux embarquer des calculs lourds en WASM dans le navigateur sans serveur.

Attention : c'est pas une solution pour remplacer npm ou tout basculer côté client (la perf du WASM c'est pas magique). Mais pour du calcul interactif, du traitement local de données sensibles, ou des démos hors ligne, c'est une vraie porte ouverte.

Et concrètement pour toi ?

Choisis ton profil — la lecture de l'article change selon qui tu es.

🔭 Curieux

Pour toi, c'est le signe que Python continue à grignoter le web : jusqu'à présent, Python était serveur-side, maintenant il peut s'exécuter dans le navigateur sans dépendre d'un intermédiaire centralisé. C'est un shift silencieux vers plus de calcul décentralisé — comprends que la limite entre frontend et backend se brouille.

Newsletters Noésis

3 minutes d'IA dans ta boîte mail, chaque matin.

Rejoins les francophones qui comprennent, essaient et progressent avec l'IA. Choisis ce que tu veux recevoir. Désabonnement en 1 clic.