La boîte à outils GTFS complète
Validation complète
CRUD avec query language
--where concis. Intégrité référentielle garantie avant écriture.Vitesse Rust
gtfs-validator. Validation parallèle, feeds de plusieurs millions de lignes sans broncher.Scripts .gl
Local-first
Prêt pour la CI
Pensé pour le cycle de vie GTFS, pas juste une étape
La plupart des équipes assemblent trois outils pour livrer un flux propre : un validateur (souvent gtfs-validator sur la JVM), une pile de scripts Python qui corrigent les lignes cassées qu’il remonte, et un rapport HTML ponctuel envoyé par mail à une équipe ops. gapline condense cette chaîne en un seul binaire.
Le même moteur qui valide un flux l’édite avec un filtre --where concis, garantit l’intégrité référentielle à chaque écriture, et enchaîne les deux dans un fichier .gl pour qu’un pipeline de nettoyage hebdomadaire commite proprement dans un repo git.
Résultat : un flux qui ne part jamais cassé, un pipeline qui ne dérive pas, et une boucle d’itération 7 à 9 fois plus courte. Pas de JVM, pas de comptes, pas d’uploads. La suite complète tourne hors-ligne en moins d’une seconde sur un flux de taille moyenne, et la sortie JSON structurée s’intègre à n’importe quelle CI existante.
Installation
Un seul binaire. Aucune dépendance, aucun runtime à réchauffer.
curl -fsSL https://gapline.dev/install.sh | shInvoke-WebRequest https://gapline.dev/install.ps1 | Invoke-Expressioncargo install gaplineVoir en action
Sortie réelle de gapline validate sur un feed STM de production. Avec -o, la console affiche la progression et le résumé, chaque issue part dans le fichier. Sans -o, tout est streamé inline.
$ gapline validate -f stm.zip -o output.txtFile Structure [] CSV Formatting [] → Feed loaded: 847,392 rows in 14 filesThird-Party Validators [] Field Validation [] Key & Reference Validation [] Semantic & Logic [] Best Practices [] ===================================Summary===================================45 Errors — 94912 Warnings — 177074 InfosStatus: FAILDetails written to output.txt (every error, warning, and info, with file and line). Pourquoi gapline
Un seul binaire Rust qui remplace toute une chaîne d’outils fragmentée.