Repository navigation
v0.2.0
Highlights
- Rebooted router core around
Router<T>and trie-based matching internals. - Added method-aware routing with optional
methodonadd/addAll/match. - Kept deterministic precedence: static > param > wildcard > global fallback.
- Added benchmark suite updates for matrix lookup, relic-style comparison, and single-add scenarios.
Breaking Changes
- Legacy function-style APIs were removed in favor of
Routermethods. - This release should be treated as a breaking API update from
0.1.x.
Benchmark Snapshot (release-time)
Environment: local release run on 2026-02-12 (CST), routeCount=500.
All benchmark commands use benchmark_harness-based runners in bench/.
1) Lookup matrix (dart run bench/compare.dart 500)
Roux speedup vs Routingkit (routingkit/roux):
- Static RoundRobin x100000: 21.06x
- Static Hot x100000: 23.69x
- Dynamic RoundRobin x100000: 9.82x
- Dynamic Hot x100000: 9.49x
Roux speedup vs Relic (relic/roux):
- Static RoundRobin x100000: 9.83x
- Static Hot x100000: 10.10x
- Dynamic RoundRobin x100000: 48.88x
- Dynamic Hot x100000: 2.35x
2) Relic-style benchmark (dart run bench/relic_compare.dart 500)
Roux speedup vs Routingkit:
- add static: 2.34x
- lookup static: 7.11x
- add dynamic: 1.35x
- lookup dynamic: 8.49x
Roux speedup vs Relic:
- add static: 1.40x
- lookup static: 5.54x
- add dynamic: 1.10x
- lookup dynamic: 1.81x
3) Single-add benchmark (dart run bench/add_single_compare.dart)
Roux speedup vs Routingkit:
- single add static: 5.36x
- single add dynamic: 4.63x
Roux speedup vs Relic:
- single add static: 2.53x
- single add dynamic: 1.90x
Notes
- Benchmark numbers are snapshots from one machine and should be interpreted as relative trends.
- For reproducibility, run the same commands in this repository with your target runtime/hardware.