Skip to content

v0.2.0

Choose a tag to compare

@medz medz released this 11 Feb 19:57
· 27 commits to main since this release

Highlights

  • Rebooted router core around Router<T> and trie-based matching internals.
  • Added method-aware routing with optional method on add / 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 Router methods.
  • 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.