Glove

CI codecov License: MIT

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

Glove screenshot

Glove loads GTFS data into memory, builds a RAPTOR index, and exposes a Navitia-compatible 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).

Quick Start

Get up and running in 3 commands:

bin/download.sh all      # Download data
bin/valhalla.sh          # Start Valhalla (optional)
bin/start.sh             # Start the server

Then open http://localhost:8080

Key Features

Routing

  • RAPTOR algorithm for optimal public transit journey computation
  • Multi-modal: public transit, walking, cycling (3 profiles), driving
  • Diverse alternatives with progressive pattern exclusion
  • Journey tags: fastest, least transfers, least walking
  • Elevation-colored bike routes (green = descent, red = climb)
  • Turn-by-turn directions for walk, bike, and car routes
  • Fuzzy autocomplete with French diacritics normalization
  • BAN integration for French address geocoding
  • Hot reload via API without service interruption

Frontend

  • Interactive Leaflet map with route polylines and stop markers
  • Mode tabs: Transit, Walk, Bike, Car
  • Dark theme with CARTO basemap and glassmorphism UI
  • Metrics panel with live CPU, memory, and request stats

Developer Experience

  • Navitia-compatible API for drop-in replacement
  • OpenAPI documentation auto-generated
  • Prometheus metrics endpoint
  • Benchmark tool for load testing
  • Dev mode with cargo-watch + Vite HMR