Releases: hytangs/vigo
Release list
VIGO Studio v0.4.2
VIGO Studio v0.4.1
VIGO 0.4.1 moves active-timetable indexing into Rust, fixes bunching membership when live vehicles depart from scheduled order, and reorganizes the implementation and documentation.
Native timetable preparation
Rust now reads admitted active-service connections from SQLite directly into typed columns, builds per-stop departure order, deduplicates transfers, expands station fallback links, and packs transfer adjacency. It also reconstructs immutable realtime timetables and compiles directed station paths, retaining nondominated time/distance alternatives and packing their witnesses. Persisted station-path arrays are validated in Rust before reuse. JavaScript retains source-ID resolution, SQLite lifecycle, and result presentation. These production compilation paths require the matching native binding; they have no JavaScript algorithm fallback.
Equal-time departure order, published-transfer precedence, forbidden transfers, station walking times, and service-stop filtering retain their existing semantics. Seeded comparisons against an independent reference and routing regressions verify the migration. A native implementation alone is not a claim of faster complete City builds or live queries.
Routing efficiency
- Cold street preparation validates street and CCH arrays concurrently. In-memory drive hierarchies use a single balanced flow cut per component; persisted builds retain the existing ordering policy.
- Scalar transit scans avoid loading arrival and journey columns for unreachable departures. CCH path reconstruction uses sorted lookup for large adjacency ranges.
- Realtime timetable reconstruction bulk-copies unchanged trip columns while preserving cancellations, replacement trips, permissions, and stable departure ordering.
- Drive traffic weights and constrained-search workspace allocate only when used. Selected-trip shape alignment shares one implementation with shape clipping and avoids temporary transition objects.
- These changes preserve exact search and do not reuse query answers. Measure cold preparation, resident uncached queries, changed realtime snapshots, and materialization separately; no universal percentage is promised.
Live vehicle spacing
A bunch can include a vehicle whose scheduled neighbor has already moved ahead. Reordered predictions now require fresh supporting evidence, use a conservative local scheduled interval, and retain the evidence age and trip identities. Both members receive the indicator, and a vehicle can display multiple bunching links. This changes observation and display; it does not extend the engine's realtime routing coverage.
Maintenance and compatibility
- GTFS metadata, policy, walking plans, results, realtime processing, and previews have explicit module boundaries. Studio components, map features, and routing-worker lifecycle are also separated from their coordinators.
- Journey details use a continuous timeline with full route names, explicit transfer locations, and separate pre-departure and in-journey waits. Route, Analyze, and Network share typography and controls; superseded styles are removed.
- Documentation is grouped into guides, reference, development, and research. Redundant test-loading scaffolding and an obsolete source-text smoke check were removed; package auditing rejects test artifacts.
- API 1.0, City format 1, Result schema 1, and the active-timetable snapshot layout remain unchanged. Existing compatible timetable snapshots remain reusable. Source installations must rebuild the native binding.
See architecture, performance measurement, and the previous release.
VIGO Studio v0.4.0
VIGO v0.3.2
VIGO 0.3.2
VIGO 0.3.2 improves Studio routing, GTFS inspection, and scenario editing. API 1.0, City format 1, and Result schema 1 are unchanged.
- Ordered waypoint routing preserves sub-minute arrival and departure times between legs.
- Studio Route uses coordinate map points with up to eight points total. Add, repick, reorder, reverse, remove, and rerun without resolving place names.
- Desktop and mobile share aligned navigation and contained playback controls. The GTFS inspector keeps service data visible and source details collapsed.
- Vehicles retain route-colored circles, with an inset arrow when a bearing is available. Feed trip totals are distinct from selected-date trip counts.
- Scheduled playback preserves shape variants, ordered loop visits, dwell, and overnight service times. Ambiguous live trip identities do not appear as a known isolated branch.
- Shared-edge scenario edits retain each branch's stop occurrences, geometry, and segment timing; inserted road paths remain continuous across successive segments.
- Local assets revalidate after updates. Build progress and documentation distinguish compiler-stage diagnostics from complete Build and first-answer timing.
Schedule playback is an estimate from the imported timetable. Scenario replacements use selected service windows and headways with modeled segment timings. See known routing limits and the Studio guide.
The platform packages are built and verified by the release workflow for macOS Apple Silicon/Intel, Linux ARM64/x64, and Windows x64. Each package includes the native routing runtime. The developer guide is attached as a PDF.
VIGO v0.3.1
VIGO 0.3.1
0.3.1 stabilizes VIGO Engine, Studio, and the separate Python interface. API 1.0, City format 1, and Result schema 1 are unchanged.
- Reuse prepared City files after copying and extraction, without depending on filesystem timestamps. Timetable snapshots work across Node and the packaged runtime; station-access preparation is retained, and ride geometry is loaded only when selected.
- Build Studio for macOS Apple Silicon/Intel, Linux ARM64/x64, and Windows x64. Each archive contains the matching native runtime. Linux artifacts target glibc on Ubuntu 24.04; macOS requires 13.5 or newer. Native Windows ARM64, 32-bit, and musl builds are not provided.
- Update MapLibre to the patched 6.4.1 release for GHSA-jrc7-96c5-q579, and verify map rendering, source updates, and attribution sanitization through the Studio protocol.
- Fix City-build resource use, source-change detection, station-access reporting, and current-format test fixtures. Remove provisional metadata aliases and redundant opening work.
- Close compilation stores before publishing rebuilt project directories on Windows.
- Align the Engine / Studio / Python narrative and keep Python installation and API details in its own repository.
- Restrict realtime claims to Studio Route's bounded overlay of supported, matched Trip Updates. Vehicle Positions and Alerts are displayed, not routing constraints. CLI/Python live Scenarios, realtime Matrix, and realtime Reach are unsupported.
Copy the complete City directory. Retained preparation is reusable; a new service pattern, changed policy, evicted cache, or older timetable format may need preparation again. Missing or corrupt required street files require restoring or rebuilding the City. Studio library settings and drafts do not travel with CLI Cities, and Studio does not directly open those directories.
Review known routing limits before interpreting results. In particular, incomplete station pathways, parent-station transfer assumptions, omitted GTFS semantics, and unmodeled drive turn restrictions limit what a computed journey establishes.
Release gates run the complete engine suite on five OS/CPU targets, exchange prepared synthetic Cities between them, check packaged runtime build/query behavior, compile the Developer Guide, and attest release artifacts. This remains pre-release software; stabilization does not establish operational or passenger-information suitability. macOS signatures are ad-hoc, and archives are not notarized or backed by a publisher certificate.
VIGO 0.3.0
VIGO 0.3.0 builds a City from GTFS and OSM and exposes Route, Matrix and Reach through Studio and the command line.
This version adds exact transfer-capped routing, shared Matrix journeys and arrive-by matrices, and reduces redundant work in bounded searches. Transit queries require a vehicle ride by default. Station walking preserves declared pathway length and accounts for missing traversal time; parent-station fallback times include the physical walking distance. Complete itinerary geometry remains available. Studio uses the selected GTFS service date, including times after midnight.
Cities compiled with transfer semantics v2 must be rebuilt from their source inputs. The Python interface is available in the companion vigo-py repository.
Validation: complete release checks, native bounded-search and Matrix regressions, CLI/interface parity, and Python integration tests. Performance varies by network and output; no universal sub-millisecond complete-request guarantee is made.