Aller au contenu

La boîte à outils GTFS complète

Un seul binaire Rust pour valider, éditer et scripter vos flux GTFS. Rapide, hors-ligne, prêt pour la CI.
200+
règles de validation
17
fichiers GTFS couverts
>95×
plus rapide que gtfs-validator
0
donnée ne quitte votre machine

Validation complète

Toutes les règles du GTFS Schedule, pas un sous-ensemble. Chaque erreur pointe fichier, ligne, champ et valeur.

CRUD avec query language

Lisez, éditez, supprimez avec un --where concis. Intégrité référentielle garantie avant écriture.

Vitesse Rust

Jusqu'à >=95x plus rapide que gtfs-validator. Validation parallèle, feeds de plusieurs millions de lignes sans broncher.

Scripts .gl

Enchaînez validation et CRUD dans un batch. Le feed reste en mémoire, un seul save à la fin.

Local-first

Aucune donnée ne quitte votre machine. Aucun compte, aucune dépendance réseau.

Prêt pour la CI

Sorties JSON/XML/CSV/HTML, exit codes structurés, autocomplétion shell. Fait pour les pipelines.

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.

Fenêtre de terminal
curl -fsSL https://gapline.dev/install.sh | sh

Voir 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.

Terminal window
$ gapline validate -f stm.zip -o output.txtFile Structure              [██████████████████████████████] 0/14CSV Formatting              [██████████████████████████████] 0/2 Feed loaded: 847,392 rows in 14 filesThird-Party Validators      [██████████████████████████████] 0/6Field Validation            [██████████████████████████████] 0/13Key & Reference Validation  [██████████████████████████████] 0/24Semantic & Logic            [██████████████████████████████] 0/24Best Practices              [██████████████████████████████] 0/9 ===================================Summary===================================45 Errors94912 Warnings177074 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.

8 Mo
RAM sur feed typique
49× moins que gtfs-validator (399 Mo).
7–9×
plus rapide sur feeds réels
Jusqu’à 96× sur petits feeds. Validation parallèle.
1
binaire, 0 runtime
Remplace gtfs-validator (JVM), scripts Python, outils maison.