Skip to content

Repository files navigation

Glove : GTFS Lightweight Optimal Velocity Engine

CI codecov License: MIT Rust React GTFS

A fast multi-modal journey planner built in Rust with a React frontend.

Glove loads GTFS data into memory, builds a RAPTOR index, and exposes a REST API for journey planning. It supports public transit, walking, cycling, and driving via Valhalla integration. The React portal provides an interactive map-based interface with autocomplete, route visualization, and multilingual support (FR/EN).

Glove screenshot

Features

Routing

  • RAPTOR algorithm — Round-based public transit routing with diverse alternatives
  • Multi-modal — Public transit, walking, cycling (3 bike profiles), driving
  • Indoor-aware transfers — Valhalla pedestrian routing with zero step/elevator penalties for intra-station walks, favoring underground passages
  • Station-aware resolution — Stop IDs resolve to all platforms via parent_station, enabling correct routing through large station complexes (metro, RER, TGV)
  • After-midnight routing — Queries before 4am automatically use previous day GTFS services for night buses and late trains

Data & Search

  • Fuzzy autocomplete — Stop and address search with French diacritics normalization
  • GTFS validation — 19 automated data quality checks (referential integrity, calendars, coordinates, transfers, pathways, display)
  • Hot reload — Update GTFS data via API without downtime (lock-free with ArcSwap)
  • Tile caching proxy — Map tiles fetched from configurable upstream server, cached locally on disk

Frontend

  • Interactive map — Leaflet with route polylines, elevation-colored bike routes, indoor/outdoor transfer distinction, dark theme
  • Vertical nav rail — Quick access to search, GTFS validation, dataset info, API docs, metrics
  • Multilingual — French and English (i18n)

API & Operations

  • REST API — Documented with OpenAPI
  • Prometheus metrics — Built-in monitoring endpoint (CPU, memory, HTTP counters)
  • Rate limiting — Configurable per-IP rate limiting (tile proxy excluded)
  • Clean Code — Rust backend with 179 tests, React frontend with 21 vitest tests

Quick Start

bin/download.sh all      # Download GTFS, OSM and BAN data
bin/valhalla.sh          # Start Valhalla (optional, for walk/bike/car)
bin/build.sh             # Build release artifacts (backend + portal)
bin/start.sh             # Production: run (auto-builds on first run)
bin/start.sh --dev       # Dev: cargo-watch + Vite HMR

Documentation

Full documentation is available at ltoinel.github.io/Glove, covering:

License

MIT

About

A fast GTFS journey planner, built in Rust with RAPTOR algorithm and a sample React portal

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages