尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
VIGO millisecond scale routing engine and studio. From a single journey to a city’s worth of possibilities. Open-source routing, powered by Rust.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗VIGO compiles a public transit timetable (GTFS) and an OpenStreetMap street map into a City, once. Then it answers, exactly and offline, how people move through it.
$ vigo route --city ./boston --request route.json
08:00:00 → 08:18:36 · 18.6 min · 0 transfer(s)
08:00:00 walk Origin → Harvard (2.3 min)
08:03:00 Red Line Harvard → South Station (13.0 min)
08:16:00 walk South Station → Destination (2.6 min)
Note: Part of this journey uses inferred station access; physical passage is not fully verified.
Harvard Square to South Station on a weekday morning, from the MBTA timetable and OpenStreetMap.
From A to B. Find the earliest arrival.
Then choose the journey with fewer boardings and less walking. Leave at 08:00 or arrive by 09:00; add stops on the way, ask for alternatives, and get every walk, wait and ride with its clocks, stops, map geometry and published fare.
One origin. Every possibility.
Where can you get in 15, 30 or 45 minutes? Reach maps every place you can get to within a time budget; its boundary is an isochrone. It stretches along transit lines, as faster connections bring distant places within reach. Add a Scenario, such as a new line or a removed route, and measure the proposal against today's network.
Ask more. Repeat less.
A thousand destinations shouldn't mean a thousand separate searches. Matrix shares the work across compatible requests, returning travel times or journeys for each pair. An unreachable pair stays null, never zero.
Six cities. Milliseconds in every one.
The median time for a complete coordinate-to-coordinate request, with walking access, journey selection and output included:
| Anchorage | Las Vegas | Denver | Washington, DC | Boston | New York |
|---|---|---|---|---|---|
| 0.67 ms | 0.94 ms | 1.32 ms | 1.64 ms | 1.69 ms | 2.11 ms |
The lowest median end-to-end latency among all nine interfaces in the VIGO paper's matched-request benchmark. The paper, the benchmark code and the measurement method are linked from vigo.city.
Explore interactively, connect a web application, or run an analysis in Python. Every interface opens the same City and runs the same engine.
| 01 | Studio | Interactive desktop software for exploring networks, planning journeys and mapping accessibility. No coding required. |
| 02 | Engine & CLI | Millisecond-scale routing for your web apps and services, through the command line or a self-hosted HTTP API. |
| 03 | Python | Routing and accessibility analysis alongside pandas, Jupyter notebooks and your existing Python tools. |
| 04 | Public API | Routing and accessibility for your applications, through a public API. Coming soon. |
Build from source with Node.js 24.18+, npm 11.6+ and the Rust toolchain pinned in rust-toolchain.toml, or download a build for your platform. See automatic build memory selection for constrained build hosts.
git clone https://github.com/hytangs/vigo.git && cd vigo
npm ci
npm run build:cli-runtime # the City compiler, public/vigo.mjs
npm run build:standalone # the engine, target/release/vigo
alias vigo-build="node \"$PWD/public/vigo.mjs\""
alias vigo="\"$PWD/target/release/vigo\""
Build a City from a GTFS ZIP and an OpenStreetMap extract that covers it:
vigo-build build --gtfs ./data/transit.zip --osm ./data/streets.osm.pbf --output ./city
Describe a journey. Coordinates are [longitude, latitude]; use places and a date your data covers:
{
"origin": {"coordinate": [-71.11902, 42.37334]},
"destination": {"coordinate": [-71.05524, 42.35227]},
"serviceDate": "2026-10-05",
"time": "08:00",
"maxWalkKm": 1.2
}
Ask the question, or keep the City loaded and serve it:
vigo route --city ./city --request route.json
vigo serve --city ./city --port 8080
The service also serves the complete documentation at http://127.0.0.1:8080/, with an API console. The Boston quickstart uses real MBTA and OpenStreetMap data and walks through Route, Matrix, Reach and a resident process.
vigo.route.v1, vigo.matrix.v1 and vigo.reach.v1 schemas only gain optional fields.One searchable, offline guide, docs/guide.html: the page the engine serves at / and Studio opens under Settings → Documentation.
A faster engine. From build to route.
VIGO's next chapter brings City compilation, scenario computation and routing into one shared Rust-native engine, built for faster network preparation, larger analyses and the applications you want to create. Follow it at vigo.city.
Compatible prepared Cities remain readable in V1 without rebuilding; API 1.0, City format 1, and Result schema 1 are unchanged. Release notes · Changelog · Prepared-data contract
npm run build # Engine kernel, Studio and the compiler
npm run studio # Open Studio
npm test # Public-source and engine checks
Contributing lists focused checks and packaging, architecture explains the implementation, and the security policy covers reporting vulnerabilities. Python development lives in python/ and needs no npm or Rust.