Changelog
Every release, newest first. Downloads: GitHub Releases.
[Unreleased]
[0.1.0-beta.4] - 2026-10-04
Changed
- Route Map is free and open source under the GNU AGPL-3.0, and its repository is public. Contributions are welcome under a Contributor Licence Agreement (CLA.md, CONTRIBUTING.md). No licence key is needed.
- Releases are on GitHub Releases, with a GPG-signed
SHA256SUMS. - Windows: a zip instead of a single exe. Extract it and run
routemap.exein theRoute Mapfolder;routemap-cli.exeis beside it. beta.3's one-file exe, which unpacked itself at start, was deleted by Microsoft Defender on download as a false positive. Both exes now carry full version information and an application manifest, no packer is used, and every Windows build is scanned with Defender before release. The Windows build is still unsigned; signing through SignPath Foundation is applied for. - Help > Support Route Map opens the project's sponsor page (nothing else, and never on its own). Help > About links the project site.
- Help > Privacy and PRIVACY.md now spell out everything an Atlas trace sends.
[0.1.0-beta.3] - 2026-10-03
Fixed
- Hops at the end of a trace that answered but could not be placed were labelled "No reply". They are now "not placed", and the legend says "Not placed (yet)" while a trace is running.
routemap-cli.exeon Windows wrote redirected output (to a file or a pipe) in the ANSI code page, so separators and accented city names came out as replacement characters. Redirected output is now UTF-8.
Changed
- RIPEstat answers are cached on this computer for the same 30 days as Hoiho answers (
ipgeo-cache.sqlite3), so a route traced again does not ask RIPEstat again. "Clear cache" clears both. - RIPEstat requests identify the app with
sourceapp=routemap-desktop(routemap-engine 0.2.1).
[0.1.0-beta.2] - 2026-10-03
Fixes from beta 1 on real Windows 11 hardware, and a compiled build.
Changed since beta.1
- Windows: no console.
routemap.exeis now a windowed program: it never opens a console or Windows Terminal tab, and closing a terminal it was started from no longer closes the app. The command line is a separateroutemap-cli.exe. - Hops appear as the trace runs. Each hop is placed on the map and added to the table the moment its line arrives (hostname first, the usual sources, the RTT bound); hops that do not answer show at once as a dashed "no reply" marker. When the tool finishes, only ECMP cleanup and the annotations are added. The map keeps fitting the hops so far until you zoom or pan; Fit hands it back.
- Nothing covers the map while tracing. The tracing card is gone; state is in the status bar, with a small indicator next to Stop.
- Right panel. The hop table is on top and grows live; the tool's raw output is in a collapsible panel below it, collapsed by default (View > Tool Output).
- Selection follows both ways. Click a marker to select its rows (all of them for a collapsed marker such as "14-15"); click a row, or move with the arrow keys, to highlight and centre its marker. Esc clears.
- Country-only placements are marked. A hop the IP database could place only to a country (for example
apa.customers.nextlayer.net, "AT") is drawn as a hollow marker labelled "AT (country only)", shows "ip-db, country only" in the Source column, and no longer stretches Fit. - Marker hover shows the same fields as the table row: hop, location, hostname, IP, RTT, loss, source and notes.
- Compiled build. The app is compiled with Nuitka on every platform.
- Help > Third-Party Notices lists every bundled component with its licence.
- Beta builds were handed to testers through a download site with a login for each tester, with a GPG-signed
SHA256SUMS.
[0.1.0-beta.1] - 2026-10-03
The first desktop build, for trying on real machines. Not code-signed yet.
Added
- The desktop app on macOS (Apple silicon and Intel), Windows and Linux: trace from this machine with the system's own tracert, traceroute or mtr, with the tool's output streaming into the window, then the route on an offline world map and in a sortable, copyable hop table, with unplaced hops and their reasons.
- Paste or open a trace run elsewhere; open a JSON export again.
- Exports: a 1600 x 900 PNG of the whole route with legend and provenance; a PDF report with the facts of the trace, the map, the hop table, unplaced hops, how locations were decided and the raw trace as an appendix; the JSON route model with the trace text, tool and flags.
- Origin from the public IP (city level, labelled approximate), or set in Settings by city search (offline), coordinates or a click on the map.
- Settings for the trace tool and flags (probe types that need administrator rights are flagged, never escalated), each network source, the Hoiho cache lifetime, RIPE Atlas and history. Everything is kept in one config folder.
- Optional RIPE Atlas traces with your own key, after a one-time acknowledgement that Atlas measurements are public.
- History of the last 50 traces, off by a setting.
- The command line:
routemap TARGETwith--json,--png,--pdfand--origin;routemap parse,routemap sites update,routemap cache clear,routemap --check-update. - Builds: a .dmg per Mac architecture (ad-hoc signed so it runs on Apple silicon), a Windows .exe, a Linux AppImage and .tar.gz, each smoke-tested in CI by opening the window offscreen, loading a trace and exporting all three formats.
Earlier, toward this beta
- The Route Map engine, extracted from FalconEye v3.35.3 into
routemap.engine: the tracert, traceroute and mtr parsers, PTR resolution, the CAIDA Hoiho client, the carrier site-code table and its generator, the bundled GeoNames city list, the RIPEstat IP geolocation fallback, the RTT physics bound, the hop annotations and ECMP handling. Behaviour is unchanged; FalconEye v3.36.0 runs its Route Map tab on this package. analyse(trace_text | hops, origin) -> Route, with every network source passed in as aSourcesvalue rather than read from configuration, a per-source progress callback, andgeo.OFFLINEfor a run that contacts nothing.Route.to_dict()and its JSON Schema,routemap/engine/route.schema.json.run_trace(target, options): runs the system tracert, traceroute or mtr with an argument list (never a shell), streams output line by line, and supports cancel and a timeout.- Pluggable Hoiho answer caches: none, in memory, or one SQLite file.
routemap parse FILEon the command line.- The desktop window, as a static mockup for review: the offline Natural Earth 1:50m world map (public domain, about 114 KB bundled), route markers that collapse same-city hops, unwrap across the antimeridian and move aside with a leader line when they would overlap, the sortable hop table, unplaced hops with reasons, live trace output, history, settings, export, paste and RIPE Atlas dialogs, light and dark.
python -m routemap.gui.mockuprenders every state from real recorded traces.
Tagged
v0.1.0.dev1(2026-10-03): the engine extraction FalconEye v3.36.0 pins.