Tech

Qu'est-ce que Pyodide? Les paquets Python peuvent désormais publier des roues WebAssembly sur PyPI

Hacker Newsil y a 3 h
Éditeur de code ouvert sur l'écran d'un ordinateur portable sur un bureau ensoleillé
Éditeur de code ouvert sur l'écran d'un ordinateur portable sur un bureau ensoleilléPhoto: Daniil Komov / Pexels

La version 314.0 de Pyodide permet aux paquets Python de publier des roues WebAssembly directement sur PyPI. L'annonce relayée sur Hacker News marque un point d'inflexion pour l'écosystème Python dans le navigateur. Voyons ce qu'est Pyodide et pourquoi cela compte.

Pyodide est une compilation de l'interpréteur Python CPython en WebAssembly (Wasm). WebAssembly est un format de code octet portable que les navigateurs modernes savent exécuter. Grâce à Pyodide, le code Python tourne directement dans le navigateur sans installation de Node.js ou de Python sur la machine. Le projet a démarré chez Mozilla en open source et est désormais maintenu par une communauté indépendante.

Pourquoi Python dans le navigateur? Trois cas d'usage principaux. Premièrement, l'éducation: un étudiant peut apprendre Python dans le navigateur sans installation. JupyterLite, du Projet Jupyter, tourne sur Pyodide et s'est largement diffusé dans les salles de classe. Deuxièmement, la visualisation de données: des dashboards qui tournent dans la page font de l'analyse dynamique avec pandas et matplotlib. Troisièmement, la communication scientifique: un chercheur peut publier un article avec du Python exécutable dans le navigateur.

Le concept de roues WebAssembly (Wasm wheels): le code compilé pour la distribution Python est livré sous forme de paquet pré-compilé appelé "wheel". Les roues classiques sont produites séparément par système d'exploitation (Linux/macOS/Windows) et architecture CPU (x86_64, arm64). Les roues WebAssembly sont compilées pour la cible WebAssembly et tournent directement dans le navigateur.

Deux configurations bas niveau ont été faites. Premièrement, l'infrastructure PyPI reconnaît et héberge officiellement la cible WebAssembly. Deuxièmement, la couche d'installation de paquets de Pyodide (`micropip`) découvre et installe automatiquement ces nouvelles roues. Pour les développeurs, cela ajoute la cible WebAssembly à l'action "publier un paquet Python".

Limite importante: tous les paquets ne se compilent pas proprement en WebAssembly. Les paquets Python purs fonctionnaient déjà. Les paquets avec extensions C (NumPy, SciPy, pandas, scikit-learn) ont été supportés sur Pyodide via des compilations sur mesure. La nouvelle étape permet aux auteurs de paquets tiers d'offrir eux-mêmes cette cible via PyPI.

Auparavant: un développeur voulant utiliser des paquets de classe NumPy dans Pyodide devait attendre une distribution compilée par l'équipe Pyodide. Le nouveau modèle permet au mainteneur de publier sa propre roue WebAssembly. C'est une porte importante pour l'étendue de l'écosystème.

Côté performance, WebAssembly est généralement plus rapide que du JavaScript pur, mais le WebAssembly sur le thread principal reste borné par les limites de mémoire et CPU du navigateur. Les versions récentes de Pyodide ont étendu le support des threads Worker pour pousser le calcul parallèle.

Dimension sécurité: WebAssembly tourne dans le bac à sable du navigateur, donc sans accès direct au système de fichiers ou aux ressources réseau. Cela rend Pyodide sûr pour étudiants, chercheurs et démos publiques. Du point de vue de la sécurité d'entreprise, ces limites sont aussi un avantage.

Contexte turc: les plateformes éducatives du TÜBİTAK ULAKBİM et les initiatives de ressources éducatives ouvertes du YÖK sont des candidats naturels à l'échelle des environnements Python en navigateur comme Pyodide. Les cours de data science de Boğaziçi, METU et ITU s'orientent déjà vers du matériel de laboratoire basé sur JupyterLite/Pyodide.

À retenir pour les développeurs: si vous publiez un nouveau paquet Python, envisagez d'ajouter la cible roue WebAssembly à votre pipeline de build. cibuildwheel et auditwheel ont ajouté le support WebAssembly dans leurs dernières versions. Si vous maintenez un paquet existant, attendez-vous à une demande croissante d'exécution dans le navigateur via Pyodide. Cet article ne constitue pas un avis de développeur.

Cet article est un résumé éditorial assisté par IA basé sur Hacker News. L'image est une photo d'archive de Daniil Komov sur Pexels.

À lire ensuite

Tuyaux de refroidissement industriels et panneaux métalliques dans un centre de données.
Tech

Combien d'eau l'IA consomme-t-elle vraiment ? Les centres de données face à la consommation mondiale

Les titres récents pointent la consommation d'eau des centres de données d'IA. Ars Technica montre qu'à l'échelle mondiale, les centres de données ne représentent qu'une faible part de la consommation totale — mais qu'à l'échelle locale ils peuvent réellement aggraver la pénurie. Le bon débat se mène au niveau des bassins versants, pas des totaux nationaux.

Ars Technicail y a 1 j