Preswald

Preswald

Structured Labs · Programmation

Preswald est un framework open source qui transforme des scripts Python en apps de données interactives et les empaquette en fichiers autonomes qui tournent dans le navigateur sans serveur.

Aperçu de l'interface de Preswald

À propos de Preswald

About

Qu'est-ce que Preswald

Preswald est un générateur de sites statiques pour apps de données interactives. Il est développé par Structured Labs et distribué sous licence Apache 2.0. Vous écrivez l'app en Python, puis une seule commande la compile en un dossier de fichiers statiques que vous pouvez ouvrir dans un navigateur ou transmettre à quelqu'un d'autre. Rien n'est à installer sur la machine qui l'exécute.

Le problème visé, c'est la livraison. Un analyste peut monter une analyse avec pandas et Plotly dans un notebook, mais la partager suppose souvent que l'autre personne prépare un environnement Python. Preswald réunit votre code, vos données et votre interface dans un paquet portable qui tourne hors ligne. En interne, il s'appuie sur WebAssembly : il exécute Pyodide pour Python et DuckDB pour les requêtes directement dans l'onglet du navigateur.

Ce choix de conception a des contreparties qu'il vaut mieux connaître d'emblée. Comme tout tourne côté client, les jeux de données très volumineux et les calculs lourds restent limités par la machine et la mémoire du navigateur du visiteur. Le projet est aussi jeune, et plusieurs bugs signalés par la communauté autour du réaffichage des graphiques montrent qu'il mûrit encore. Le site officiel redirige désormais vers Structured Labs, qui poursuit le développement de Preswald aux côtés de ses autres produits.

Pour démarrer

  1. Installez le paquet avec pip install preswald ou uv pip install preswald.
  2. Lancez preswald init my_app pour générer la structure du projet, avec un fichier d'app, une configuration et des données d'exemple.
  3. Modifiez le fichier Python et importez des composants d'interface comme text, table et get_df pour construire l'app.
  4. Lancez preswald run pour démarrer un serveur de développement local et prévisualiser l'app sur localhost.
  5. Lancez preswald export pour générer un paquet statique dans un dossier dist/, qui tourne hors ligne et peut être partagé.

Informations sur le produit

Aperçu des tarifs, des plateformes compatibles et des performances de Preswald.

Offre gratuiteOui
Offres payantesFree (open source)
PlateformeWeb (browser), Command line
DéveloppeurStructured Labs
CatégorieProgrammation
Date de lancementFeb 2025
Dernière mise à jourOct 2025
Visites du siteN/A
Classement mondial du site6.6M
Disponibilité de l’APIN/A

Idéal pour

Les utilisateurs, tâches et cas d'usage où cet outil convient le mieux.

Utilisateurs

  • Analystes de données
  • Développeurs Python
  • Équipes qui passent le travail à d'autres services
  • Équipes soucieuses de la confidentialité

Tâches

  • Construire des tableaux de bord d'analyste
  • Rédiger des rapports interactifs
  • Publier des outils d'inspection de données
  • Préparer des kits hors ligne

Cas d'usage

  • Confier un outil à un collègue non technique
  • Travailler sur des données confidentielles
  • Prototyper un produit de données rapidement
  • Fournir un outil structuré à un agent IA

Fonctionnalités clés

Écriture centrée sur Python

Vous construisez toute l'app en Python, avec des fonctions d'aide pour le texte, les tableaux, les graphiques et les formulaires. Il n'y a pas de JavaScript à écrire ni de runtime de notebook à affronter. Pour qui est déjà à l'aise avec pandas, le passage du script d'analyse à l'app fonctionnelle est court.

Export basé sur les fichiers

Une seule commande preswald export compile l'app en site statique dans un dossier dist/. Cette sortie contient tout le nécessaire pour l'exécuter : vous pouvez la compresser, l'héberger ou la déposer dans un dossier partagé. Elle fonctionne hors ligne dans tout navigateur moderne.

Calcul dans le navigateur avec Pyodide et DuckDB

Le runtime exécute Python via Pyodide et les requêtes via DuckDB, tous deux compilés en WebAssembly. Le traitement réel se fait donc dans l'onglet, pas sur un serveur distant. DuckDB traite vite du SQL analytique sur des fichiers locaux, et c'est ce qui rend possibles des apps de données réactives dans le navigateur.

Moteur réactif

Preswald suit un graphe de dépendances de votre état et ne réexécute que les parties de l'app touchées par un changement. Quand l'utilisateur bouge un filtre, l'app recalcule seulement les sorties concernées au lieu de tout le script. Les apps interactives restent ainsi réactives à mesure qu'elles grossissent.

Composants d'interface composables

Le framework fournit des briques prêtes à l'emploi : tableaux, graphiques, formulaires et éléments de mise en page. Vous les placez dans votre script et elles s'affichent dans une interface cohérente. Vous évitez ainsi d'écrire à la main le balisage et le style des vues de données courantes.

Exécution locale par défaut

Comme les apps tournent entièrement dans le navigateur, il n'y a pas de backend à déployer, sécuriser ou payer. Les données restent sur la machine où l'app tourne, ce qui convient aux jeux sensibles et au travail de terrain hors ligne. Cette même propriété limite la quantité de données et de calcul qu'une app peut absorber.

Open source sous Apache 2.0

Preswald est sous licence Apache 2.0 et développé ouvertement sur GitHub : vous pouvez lire le code, ouvrir des tickets et contribuer. Le projet est maintenu par Structured Labs, avec une communauté active sur Slack et dans les discussions GitHub.

Avantages et inconvénients

Avantages

  • Vous écrivez les apps en Python, donc les analystes partagent leur travail sans apprendre une pile front-end.
  • La sortie est un paquet statique autonome qui tourne hors ligne dans le navigateur, sans serveur à déployer.
  • DuckDB et Pyodide amènent du vrai SQL et de la vraie exécution Python jusqu'à l'onglet du navigateur.
  • Les réexécutions réactives gardent les tableaux de bord interactifs véloces à mesure qu'ils grandissent.
  • La licence Apache 2.0 écarte toute dépendance à un fournisseur et laisse une liberté totale d'auto-hébergement.

Inconvénients

  • Tout tourne côté client, donc les gros jeux de données et les calculs lourds butent sur les limites de mémoire et de vitesse de la machine du visiteur.
  • Le projet est jeune, et les bugs signalés par la communauté sur le réaffichage des graphiques montrent que le runtime mûrit encore, donc des aspérités restent possibles.
  • Aucune API cloud documentée n'existe, donc les équipes qui veulent un backend managé doivent chercher ailleurs ou héberger elles-mêmes.
  • Livrées via le navigateur, les apps dépendent d'un navigateur moderne et ne conviennent pas aux tâches planifiées ou aux serveurs sans interface.

Questions fréquentes

Preswald crée des apps de données interactives en Python et les empaquette en fichiers statiques qui tournent dans le navigateur. Il convient aux tableaux de bord, rapports, outils d'inspection de données et prototypes à partager sans demander à quiconque de préparer un environnement Python.