Releases: rhendriks/MiGreedy
Releases · rhendriks/MiGreedy
MiGreedy v1.5.3
What's changed
- Support RTT measurements from RIPE Atlas DNS measurements
Full Changelog: v1.5.2...v1.5.3
Full Changelog: v1.5.2...v1.5.3
Full Changelog: v1.5.2...v1.5.3
Full Changelog: v1.5.2...v1.5.3
MiGreedy v1.5.2
What's changed
Algorithm improvements
- Ambiguous disc exclusion — Discs that overlap multiple MIS clusters are now excluded from all clusters, preventing noise from measurements where the reached anycast site is unknown.
- Progressive disc intersection — Geolocation now intersects all cluster discs (smallest to largest) rather than using only the smallest. If a disc would eliminate all remaining candidates, it is skipped and the previous candidate set is preserved.
- R-tree spatial indexing — City/airport lookups now use an R-tree (
O(log n)) instead of a linear scan over all locations. - Relative population threshold (
--pop-ratio) — New per-geolocation filter that keeps only cities withpop >= max_pop × ratioamong candidates, complementing the existing absolute--min-pop. - Unified cities dataset — The three separate city files (
cities1000,cities5000,cities15000) have been replaced by a singlecities500.csv.gzcontaining all cities with population ≥ 500. Filtering is now done at runtime via--min-pop.
Performance
- Precomputed MIS distance matrix — Haversine distances from all discs to all MIS discs are computed once upfront, eliminating redundant calculations during clustering.
New features
--accuracyflag — Adds two optional output columns for assessing the accuracy of individual geolocation outputs:candidate_diameter— max pairwise distance (km) between surviving candidate cities (spatial precision)num_constraints— number of discs that narrowed the candidate set (confidence)
- RIPE Atlas API robustness — Handles the
minRTT field returned as either a number or a string, fixing deserialization failures on certain measurements.
Repository changes
- Python implementation removed — The legacy Python code (
code/) has been removed. Only the Rust implementation is maintained going forward. - Modular codebase — The single
main.rshas been split into six modules:main,analyzer,atlas,io,model,geo.
What's Changed
- 24 population threshold including relative by @rhendriks in #25
Full Changelog: v1.5.0...v1.5.2
What's Changed
- 24 population threshold including relative by @rhendriks in #25
Full Changelog: v1.5.0...v1.5.2
What's Changed
- 24 population threshold including relative by @rhendriks in #25
Full Changelog: v1.5.0...v1.5.2
MiGreedy v1.5.0
What's Changed
- 18 testing and validation by @rhendriks in #21
- 22 ripe atlas measurement id input by @rhendriks in #23
- included optional city-level geolocation by @rhendriks in #23
- changed geolocation algorithm, for finding the best airport/city in each MIS (iteratively intersecting circles till the best candidate city is found) by @rhendriks in #23
Full Changelog: v1.4.3...v1.5.0
What's Changed
- 18 testing and validation by @rhendriks in #21
- 22 ripe atlas measurement id input by @rhendriks in #23
Full Changelog: v1.4.3...v1.5.0
What's Changed
- 18 testing and validation by @rhendriks in #21
- 22 ripe atlas measurement id input by @rhendriks in #23
Full Changelog: v1.4.3...v1.5.0
What's Changed
- 18 testing and validation by @rhendriks in #21
- 22 ripe atlas measurement id input by @rhendriks in #23
Full Changelog: v1.4.3...v1.5.0
MiGreedy v1.4.3
What's Changed
- include airport file in binary, update polars by @rhendriks in #20
Full Changelog: v1.4.0...v1.4.3
What's Changed
- include airport file in binary, update polars by @rhendriks in #20
Full Changelog: v1.4.0...v1.4.3
MiGreedy v1.4.0
What's Changed
- 15 unicast geolocation by @rhendriks in #17
- 16 mis geolocation with intersection by @rhendriks in #19
Full Changelog: v1.2.1...v1.4.0
What's Changed
- 15 unicast geolocation by @rhendriks in #17
- 16 mis geolocation with intersection by @rhendriks in #19
Full Changelog: v1.2.1...v1.4.0
MiGreedy v1.2.1
What's Changed
Full Changelog: v1.2.0...v1.2.1
What's Changed
New Contributors
Full Changelog: v1.2.0...v1.2.1
Release v1.2.0
Full Changelog: v1.1.0...v1.2.0
Release v1.1.0
What's Changed
- Rust implementation of iGreedy by @rhendriks in #6
New Contributors
- @rhendriks made their first contribution in #6
Full Changelog: https://github.com/rhendriks/MiGreedy/commits/v1.1.0