obi1kenobi/trustfall : ce que le README permet réellement d'évaluer
Un moteur de requête pour toute combinaison de sources de données. Interrogez vos fichiers et API comme s’il s’agissait de bases de données !
En bref
- De quoi s’agit-il ?
- A query engine for any combination of data sources. Query your files and APIs as if they were databases!. Cette lecture retient les mécanismes documentés, les contraintes visibles et le premier point à vérifier avant adoption.
- À qui s’adresse-t-il ?
- Le projet s'adresse aux personnes dont le besoin correspond à Trustfall et qui acceptent les limites écrites dans le README. Il convient moins à une équipe qui attend une garantie absente des sources.
- Puis-je l’utiliser commercialement ?
- Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 2 jours.
- En quel langage est-il écrit ?
- Principalement Rust, 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
Un seul langage de requête pour des sources hétérogènes
Le README commence par décrire Trustfall comme un moteur de requête pour n'importe quel type de source de données, des API et bases de données aux fichiers sur disque, en passant par des modèles d'IA. La description du dépôt dit la même chose : interroger vos fichiers et vos API comme s'il s'agissait de bases de données. Les exemples du README sont écrits dans un langage proche de GraphQL, avec des filtres, de la récursion et des directives de sortie. Une requête utilise @filter pour les conditions, @output pour les champs de sortie et @recurse pour la profondeur de récursion. L'idée centrale est qu'une seule requête peut traverser des sources qui exigeraient normalement des clients séparés. Lecture ciblée 1 de obi1kenobi/trustfall : ce passage est rattaché à Trustfall.
Dans obi1kenobi/trustfall, le repère Trustfall donne une limite de lecture précise pour la section 1. Le README décrit Trustfall comme une entrée, un composant ou une contrainte du projet, sans fournir ici une promesse générale de résultat. Le repère GraphQL permet de poursuivre l'examen dans le dépôt avec le vocabulaire propre à trustfall. Cette distinction évite de transformer une fonction documentée en garantie de compatibilité. Elle compte pour une équipe qui doit choisir entre une intégration ciblée et une solution plus large. La licence Apache-2.0 encadre la réutilisation du code, tandis que le README reste la source pour les conditions techniques. Repère éditorial 1.
Dans obi1kenobi/trustfall, le repère query donne une limite de lecture précise pour la section 4. Le README décrit query comme une entrée, un composant ou une contrainte du projet, sans fournir ici une promesse générale de résultat. Le repère cargo permet de poursuivre l'examen dans le dépôt avec le vocabulaire propre à trustfall. Cette distinction évite de transformer une fonction documentée en garantie de compatibilité. Elle compte pour une équipe qui doit choisir entre une intégration ciblée et une solution plus large. La licence Apache-2.0 encadre la réutilisation du code, tandis que le README reste la source pour les conditions techniques. Repère de comparaison 1.
Essayer dans le navigateur
Le Trustfall Playground est une page web qui exécute des requêtes sur des sources publiques, notamment les API REST de HackerNews et le JSON rustdoc des principales crates Rust. Le README pointe vers une requête préécrite qui cherche les utilisateurs commentant des histoires à propos d'openai.com et ayant au moins un lien GitHub ou Twitter dans leur profil. Cette requête combine l'API de recherche de HackerNews et l'API Firebase HN, et traite les URL avec des filtres regex. Dans le Playground, Trustfall est compilé en WASM ; l'analyse, la compilation et l'exécution se font dans le navigateur. Le README précise que le moteur peut aussi être utilisé dans un contexte client-serveur, donc le WASM n'est pas la seule forme. Lecture ciblée 2 de obi1kenobi/trustfall : ce passage est rattaché à GraphQL.
Dans obi1kenobi/trustfall, le repère GraphQL donne une limite de lecture précise pour la section 2. Le README décrit GraphQL comme une entrée, un composant ou une contrainte du projet, sans fournir ici une promesse générale de résultat. Le repère adapter permet de poursuivre l'examen dans le dépôt avec le vocabulaire propre à trustfall. Cette distinction évite de transformer une fonction documentée en garantie de compatibilité. Elle compte pour une équipe qui doit choisir entre une intégration ciblée et une solution plus large. La licence Apache-2.0 encadre la réutilisation du code, tandis que le README reste la source pour les conditions techniques. Repère éditorial 2.
Dans obi1kenobi/trustfall, le repère cargo donne une limite de lecture précise pour la section 5. Le README décrit cargo comme une entrée, un composant ou une contrainte du projet, sans fournir ici une promesse générale de résultat. Le repère Rust permet de poursuivre l'examen dans le dépôt avec le vocabulaire propre à trustfall. Cette distinction évite de transformer une fonction documentée en garantie de compatibilité. Elle compte pour une équipe qui doit choisir entre une intégration ciblée et une solution plus large. La licence Apache-2.0 encadre la réutilisation du code, tandis que le README reste la source pour les conditions techniques. Repère de comparaison 2.
La démo de conférence
Trustfall a été présenté à la conférence HYTRADBOI 2022 dans une intervention intitulée How to Query (Almost) Everything. La démo liée exécute une requête qui prend la première page de HackerNews, suit les liens vers des dépôts GitHub, lit les fichiers YAML de workflows et liste les GitHub Actions utilisées. La requête filtre les histoires par score et compte les liens de profil, traversant ainsi deux API REST et un ensemble de fichiers en une seule passe. Le projet de démo se trouve dans le répertoire demo-hytradboi ; le README indique que le code source et les instructions y sont disponibles. Un enregistrement de terminal dans le README montre la commande et fait état de 6,36 secondes pour les 20 premiers résultats, mais ce chiffre vaut pour cet enregistrement. Lecture ciblée 3 de obi1kenobi/trustfall : ce passage est rattaché à adapter.
Dans obi1kenobi/trustfall, le repère adapter donne une limite de lecture précise pour la section 3. Le README décrit adapter comme une entrée, un composant ou une contrainte du projet, sans fournir ici une promesse générale de résultat. Le repère query permet de poursuivre l'examen dans le dépôt avec le vocabulaire propre à trustfall. Cette distinction évite de transformer une fonction documentée en garantie de compatibilité. Elle compte pour une équipe qui doit choisir entre une intégration ciblée et une solution plus large. La licence Apache-2.0 encadre la réutilisation du code, tandis que le README reste la source pour les conditions techniques. Repère éditorial 3.
Dans obi1kenobi/trustfall, le repère Rust donne une limite de lecture précise pour la section 6. Le README décrit Rust comme une entrée, un composant ou une contrainte du projet, sans fournir ici une promesse générale de résultat. Le repère schema permet de poursuivre l'examen dans le dépôt avec le vocabulaire propre à trustfall. Cette distinction évite de transformer une fonction documentée en garantie de compatibilité. Elle compte pour une équipe qui doit choisir entre une intégration ciblée et une solution plus large. La licence Apache-2.0 encadre la réutilisation du code, tandis que le README reste la source pour les conditions techniques. Repère de comparaison 3.
Exemples et un utilisateur existant
Le dépôt contient des exemples de requêtes pour trois types de données : les API REST de HackerNews, les flux RSS/Atom et les données météo d'aéroport au format CSV (METAR). L'exemple HackerNews inclut aussi un aperçu du langage de requête. L'exemple RSS/Atom montre comment interroger des flux structurés, et l'exemple météo montre comment interroger des CSV issus de bulletins d'aviation. Trustfall alimente également cargo-semver-checks, un outil de vérification de version sémantique pour Rust. Le README renvoie à un article de blog qui affirme une accélération de 2000 fois de la vérification semver en Rust ; cette mesure n'est pas reproduite dans le README et doit donc être considérée comme le rapport de l'auteur, pas comme un benchmark de ce dépôt. Lecture ciblée 4 de obi1kenobi/trustfall : ce passage est rattaché à query.
Dans obi1kenobi/trustfall, le repère query donne une limite de lecture précise pour la section 4. Le README décrit query comme une entrée, un composant ou une contrainte du projet, sans fournir ici une promesse générale de résultat. Le repère cargo permet de poursuivre l'examen dans le dépôt avec le vocabulaire propre à trustfall. Cette distinction évite de transformer une fonction documentée en garantie de compatibilité. Elle compte pour une équipe qui doit choisir entre une intégration ciblée et une solution plus large. La licence Apache-2.0 encadre la réutilisation du code, tandis que le README reste la source pour les conditions techniques. Repère éditorial 4.
Dans obi1kenobi/trustfall, le repère schema donne une limite de lecture précise pour la section 7. Le README décrit schema comme une entrée, un composant ou une contrainte du projet, sans fournir ici une promesse générale de résultat. Le repère Trustfall permet de poursuivre l'examen dans le dépôt avec le vocabulaire propre à trustfall. Cette distinction évite de transformer une fonction documentée en garantie de compatibilité. Elle compte pour une équipe qui doit choisir entre une intégration ciblée et une solution plus large. La licence Apache-2.0 encadre la réutilisation du code, tandis que le README reste la source pour les conditions techniques. Repère de comparaison 4.
Ajouter une nouvelle source de données
Le README recommande d'implémenter le trait BasicAdapter dans trustfall_core pour brancher une nouvelle source. Des liaisons Python existent dans le répertoire pytrustfall et sont construites automatiquement à chaque modification du moteur ; la version la plus récente est disponible sur la page des releases GitHub. Il n'y a pas encore de guide de démarrage ; le README pointe vers un tracking issue et recommande la suite de tests des liaisons Python comme meilleure ressource actuelle. En attendant la documentation, toute personne souhaitant utiliser Python doit donc lire les tests. Lecture ciblée 5 de obi1kenobi/trustfall : ce passage est rattaché à cargo.
Dans obi1kenobi/trustfall, le repère cargo donne une limite de lecture précise pour la section 5. Le README décrit cargo comme une entrée, un composant ou une contrainte du projet, sans fournir ici une promesse générale de résultat. Le repère Rust permet de poursuivre l'examen dans le dépôt avec le vocabulaire propre à trustfall. Cette distinction évite de transformer une fonction documentée en garantie de compatibilité. Elle compte pour une équipe qui doit choisir entre une intégration ciblée et une solution plus large. La licence Apache-2.0 encadre la réutilisation du code, tandis que le README reste la source pour les conditions techniques. Repère éditorial 5.
Dans obi1kenobi/trustfall, le repère Trustfall donne une limite de lecture précise pour la section 8. Le README décrit Trustfall comme une entrée, un composant ou une contrainte du projet, sans fournir ici une promesse générale de résultat. Le repère GraphQL permet de poursuivre l'examen dans le dépôt avec le vocabulaire propre à trustfall. Cette distinction évite de transformer une fonction documentée en garantie de compatibilité. Elle compte pour une équipe qui doit choisir entre une intégration ciblée et une solution plus large. La licence Apache-2.0 encadre la réutilisation du code, tandis que le README reste la source pour les conditions techniques. Repère de comparaison 5.
Organisation du dépôt
Le répertoire trustfall est une crate façade et constitue la voie privilégiée pour utiliser le moteur. trustfall_core contient les entrailles du moteur de requête, trustfall_derive fournit des macros qui simplifient le branchement de sources, pytrustfall contient les liaisons Python, trustfall_wasm est la version WASM, et trustfall_filetests_macros génère des cas de test basés sur des fichiers, en comparant la sortie d'une fonction avec le contenu d'un autre fichier. Le répertoire experiments contient des projets expérimentaux comme le playground web. Le README ne donne pas d'exemples d'utilisation pour chaque crate, donc les noms de répertoires sont la seule carte. Lecture ciblée 6 de obi1kenobi/trustfall : ce passage est rattaché à Rust.
Dans obi1kenobi/trustfall, le repère Rust donne une limite de lecture précise pour la section 6. Le README décrit Rust comme une entrée, un composant ou une contrainte du projet, sans fournir ici une promesse générale de résultat. Le repère schema permet de poursuivre l'examen dans le dépôt avec le vocabulaire propre à trustfall. Cette distinction évite de transformer une fonction documentée en garantie de compatibilité. Elle compte pour une équipe qui doit choisir entre une intégration ciblée et une solution plus large. La licence Apache-2.0 encadre la réutilisation du code, tandis que le README reste la source pour les conditions techniques. Repère éditorial 6.
Dans obi1kenobi/trustfall, le repère GraphQL donne une limite de lecture précise pour la section 9. Le README décrit GraphQL comme une entrée, un composant ou une contrainte du projet, sans fournir ici une promesse générale de résultat. Le repère adapter permet de poursuivre l'examen dans le dépôt avec le vocabulaire propre à trustfall. Cette distinction évite de transformer une fonction documentée en garantie de compatibilité. Elle compte pour une équipe qui doit choisir entre une intégration ciblée et une solution plus large. La licence Apache-2.0 encadre la réutilisation du code, tandis que le README reste la source pour les conditions techniques. Repère de comparaison 6.
Conclusion éditoriale
Le projet s'adresse aux personnes dont le besoin correspond à Trustfall et qui acceptent les limites écrites dans le README. Il convient moins à une équipe qui attend une garantie absente des sources. Avant décision, vérifiez GraphQL avec la commande ou le fichier indiqué par trustfall, puis contrôlez le résultat propre à adapter.
Notes de la communauté