À propos du projet
Pygbag est un outil polyvalent conçu pour empaqueter et exécuter des applications Python et Pygame directement dans les navigateurs web modernes, y compris les versions mobiles. Il sert d'empaqueteur, de serveur de test et de simulateur, permettant aux développeurs de porter des jeux Python et des applications interactives sur le web grâce à WebAssembly (Wasm).
Fonctionnalités clés :
- Exécution directe dans le navigateur : exécute du code Python de manière transparente dans les navigateurs web modernes, y compris Safari et Chrome mobiles.
- Boucle compatible asynchrone : nécessite que la boucle principale de l'application soit compatible asynchrone (via asyncio).
- REPL interactif : offre un terminal interactif et un environnement REPL pour tester et déboguer directement dans le navigateur.
- Interface en ligne de commande : fournit une CLI riche avec des options pour la compilation, l'empaquetage, la personnalisation des noms d'application, des icônes, des modèles et la gestion SSL.
- Prise en charge de CPython et Pygame : prend spécifiquement en charge pygame-ce (pygame community edition) et les versions précompilées de CPython (jusqu'à 3.14).
- Optimisation des ressources : inclut un optimiseur de ressources et une gestion du cache pour réduire le transfert réseau et améliorer les temps de chargement.
Démarrage rapide :
Pour utiliser pygbag, installez-le via pip et exécutez-le sur un dossier contenant un main.py avec une boucle asynchrone :
pip3 install pygbag --user --upgrade
pygbag your.app.folder
Ensuite, accédez à l'URL du serveur de test local (par défaut http://localhost:8000) dans un navigateur moderne.
Compatibilité :
- Les navigateurs basés sur V8 (Chromium, Brave, Chrome) sont préférés en raison des restrictions de chargement de WebAssembly de base.
- Pour Safari mobile, iOS 15.x ou version ultérieure est requis. La lecture audio au démarrage doit être évitée, et --ume_block 0 est recommandé.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.