Skip to content

Version packages - #22

Merged
linusnorton merged 1 commit into
masterfrom
changeset-release/master
Sep 13, 2026
Merged

linusnorton merged 1 commit into
masterfrom
changeset-release/master

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to master, this PR will be updated.

Releases

connection-scan-algorithm@3.0.0

Major Changes

  • c03d451: Scan connections held as arrays of numbers, 30 to 90 times faster.

    The algorithm and its classes are as they were: toGtfsData, ConnectionScanAlgorithm asking
    ScanResults whether each connection is reachable and better, and JourneyFactory building legs
    from the connection index. What they read changes. Stations are numbered, connections are parallel
    typed arrays sorted by arrival rather than an object each, ScanResults holds arrays indexed by
    station, and a connection or footpath is its index. A scan starts at the first connection arriving
    after the departure time rather than at midnight, stops once every destination has been reached,
    and whether each trip runs is worked out once per date by a TripCalendar.

    Over the GB rail feed, planning Tuesday 15 September, across repeated runs: 32 standard queries (the
    24 of npm run perf and eight more) take 3.1-3.5ms each on average rather than 115-117ms, 268
    journeys through couplings 1.7ms rather than 130ms, and 400 random station pairs 4.4-5.3ms rather
    than 170-174ms. Building takes 305-360ms rather than 570-630ms, and holds 83MB rather than 195MB. All
    1,100 answers are the same journeys 2.0.0 returns, trip for trip.

    DepartAfterQuery, loadGtfs and toGtfsData are called as before. What changes:

    • new ConnectionScanAlgorithm(gtfs, new ScanResultsFactory(gtfs)) and new JourneyFactory(gtfs)
    • GtfsData holds Connections and Transfers as arrays, an Int32Array of interchange times, a
      TripCalendar, the trips and a stopTable numbering the stations
    • scan returns a ConnectionIndex of Int32Array, and a Connection is a number: TimetableConnection
      and TransfersByOrigin are gone, and isTransfer checks a leg while isTransferConnection checks
      a connection

@github-actions
github-actions Bot force-pushed the changeset-release/master branch from d09f0c0 to 773fb4a Compare September 13, 2026 19:24
@linusnorton
linusnorton merged commit be65950 into master Sep 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant