Pathway : un framework Python ETL sur un moteur Rust
Pathway est un framework ETL Python pour le traitement de flux, l'analyse temps réel, les pipelines LLM et le RAG, propulsé par un moteur Rust évolutif basé sur Differential Dataflow.
En bref
- De quoi s’agit-il ?
- Traitement de flux, analyses en temps réel, pipelines LLM et RAG depuis Python, avec le calcul effectué par un moteur Rust.
- À qui s’adresse-t-il ?
- Le README présente Pathway comme un framework qui conserve Python comme langage de développement tout en déplaçant le calcul réel vers un runtime Rust. Il documente l'installation, un petit exemple, les options de déploiement et un ensemble de connecteurs et d'utilitaires LLM.
- Puis-je l’utiliser commercialement ?
- À vérifier. La licence de ce dépôt n’entre pas dans les catégories que nous classons automatiquement : lisez son fichier LICENSE avant tout usage commercial.
- Est-il encore maintenu ?
- Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
- En quel langage est-il écrit ?
- Principalement Python, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Le périmètre de Pathway et l'API Python
Le README présente Pathway comme un framework Python ETL pour le traitement de flux, les analyses en temps réel, les pipelines LLM et le RAG. Il met l'accent sur une API Python facile à utiliser et affirme que le même code peut être utilisé pour le développement local, les tests CI/CD, les traitements par lots, les relectures de flux et les flux en direct. La description indique également que le code Pathway est exécuté par un moteur Rust plutôt que directement en Python, ce qui constitue la base des affirmations de performance et de passage à l'échelle formulées plus loin dans le document.
Le moteur Rust et son modèle de calcul
Le moteur de Pathway est construit sur Differential Dataflow, un modèle de calcul incrémental. Le README dit que le moteur conserve l'intégralité du pipeline en mémoire, prend en charge le multithreading, le multiprocessing et les calculs distribués, et est destiné à un déploiement avec Docker et Kubernetes. Il indique également que le moteur effectue des mises à jour incrémentales lorsque de nouvelles données arrivent, y compris des événements tardifs ou désordonnés, en révisant les résultats. Cela est présenté comme le mécanisme derrière le comportement temps réel du framework.
Installation et exemple documenté
L'installation se fait via pip avec `pip install -U pathway`. Python 3.10 ou plus est requis, et le paquet est disponible pour macOS et Linux ; le README conseille aux utilisateurs d'autres systèmes de l'exécuter dans une machine virtuelle. L'exemple inclus lit des fichiers CSV depuis un répertoire, filtre les lignes où une valeur est non négative, calcule une somme avec un réducteur, écrit le résultat en JSON Lines, puis exécute le calcul avec `pw.run()`. Le schéma est déclaré comme sous-classe de `pw.Schema`.
Exécuter des pipelines localement et avec Docker
Localement, un pipeline est défini en important `pathway as pw`, en construisant des tables et des opérations, puis en appelant `pw.run()`. Le README mentionne un tableau de bord de surveillance qui affiche le nombre de messages par connecteur, la latence du système et les journaux. La commande `pathway spawn` peut lancer un script avec un nombre choisi de threads, par exemple `pathway spawn --threads 3 python main.py`. Pour un déploiement conteneurisé, le dépôt fournit une image Docker `pathwaycom/pathway:latest` et des exemples de construction d'un Dockerfile ou d'exécution directe d'un script unique. Kubernetes et le déploiement cloud sont décrits comme des fonctionnalités de l'édition entreprise, et non de la version gratuite.
Connecteurs, transformations et outils LLM
La liste des fonctionnalités couvre des connecteurs vers Kafka, GDrive, PostgreSQL et SharePoint, plus un connecteur Airbyte qui, selon le README, atteint plus de 300 sources de données. Des connecteurs personnalisés peuvent être écrits en Python. Les transformations incluent des opérations avec état comme les jointures, le fenêtrage et le tri, dont beaucoup sont implémentées directement en Rust ; toute fonction ou bibliothèque Python peut également être utilisée. Une extension LLM séparée fournit des wrappers, des parseurs, des embedders, des spliters, un index vectoriel en mémoire temps réel, et des intégrations avec LlamaIndex et LangChain. Plusieurs modèles exécutables sont liés, notamment un RAG privé avec Ollama et Mistral AI et un exemple RAG multimodal avec GPT-4o.
Affirmations de performance et dépôt de benchmarks
Le README fait une large affirmation de performance : Pathway est « fait pour surpasser » Flink, Spark et Kafka Streaming pour les tâches de streaming et de batch. Il dit aussi que le moteur permet d'implémenter des algorithmes en mode streaming que d'autres frameworks ne supportent pas facilement, notamment les jointures temporelles, les algorithmes de graphes itératifs et les routines de machine learning. Aucun chiffre de benchmark n'apparaît dans le README lui-même. À la place, le lecteur est dirigé vers un dépôt séparé, `pathwaycom/pathway-benchmarks`, décrit comme « quelques benchmarks pour jouer ». Le README ne fournit pas de méthodologie, de détails matériels ni de date pour ces comparaisons.
Licence, support et contribution
Le README indique que Pathway est distribué sous la licence Business Source License 1.1, autorisant une utilisation non commerciale illimitée et la plupart des utilisations commerciales gratuitement, et que le code passe à Apache 2.0 après quatre ans. Certains dépôts complémentaires sont listés comme sous licence MIT. Cependant, les métadonnées du dépôt enregistrent la licence comme NOASSERTION, et l'extrait de licence fourni dit qu'aucun fichier LICENSE n'a été trouvé aux chemins courants, donc le fichier de licence réel de ce dépôt n'a pas pu être vérifié à partir des matériaux donnés. Les canaux de support mentionnés sont GitHub Issues, Discord et l'e-mail. Les directives de contribution demandent que les nouvelles bibliothèques ou connecteurs soient d'abord publiés dans des dépôts séparés sous licence MIT ou Apache 2.0.
Conclusion éditoriale
Le README présente Pathway comme un framework qui conserve Python comme langage de développement tout en déplaçant le calcul réel vers un runtime Rust. Il documente l'installation, un petit exemple, les options de déploiement et un ensemble de connecteurs et d'utilitaires LLM. Les performances sont annoncées mais non étayées par des chiffres dans ce fichier, et la déclaration de licence ne correspond pas au NOASSERTION des métadonnées du dépôt ni à l'extrait de licence fourni, qui note qu'aucun fichier LICENSE n'a été trouvé aux chemins courants.
Notes de la communauté