PackageTrack
Sign in Get early access

zenrouter_core

The core routing engine and unified interfaces for the ZenRouter navigation system. Contains common models, types, and logic used across the zenrouter ecosystem.

2.3.0 11K downloads/mo #2846 most downloaded on pub.dev definev/zenrouter

What this package is like to depend on

Last release 4 days ago

20 Aug 2026

Ships fairly regularly

a new release about every 5 weeks

Most releases are documented

notes for 5 of 6 stable releases

Nothing withdrawn

no release was ever pulled

6 months old

7 releases · first in 2026

7 releases in the last 12 months

see the full history below

Release timeline

7 releases · Feb 2026 to Aug 2026
Release Pre-release

Releases

latest 7
  1. 3.0.0-beta.1 20 Aug 2026 pre-release

    Nothing published for this version

  2. 2.3.0 17 Aug 2026
    Release notes

    Breaking Changes

    • GuardRule contract renamed for coordinator-optional use. The 2.1.0 methods are removed:

      Removed (2.2.0) Replacement
      canPop(route) canPopRule(route) / canPopRuleWith(coordinator, route)
      canPopListenable(route) canPopListenableRule(route) / canPopListenableRuleWith(coordinator, route)
      guard(coordinator, route) guardRule(route) / guardRuleWith(coordinator, route)

      Migration:

      // Before (2.2.0)
      class UnsavedChangesRule extends GuardRule<AppRoute> {
        @override
        bool canPop(AppRoute route) => !route.hasUnsavedChanges;
      
        @override
        FutureOr<bool?> guard(CoordinatorCore c, AppRoute route) async { /* ... */ }
      }
      
      // After (2.3.0) — route-only
      class UnsavedChangesRule extends GuardRule<AppRoute> {
        @override
        bool canPopRule(AppRoute route) => !route.hasUnsavedChanges;
      
        @override
        FutureOr<bool?> guardRule(AppRoute route) async { /* ... */ }
      }
      
      // After (2.3.0) — needs coordinator (dialogs, app state)
      class UnsavedChangesRule extends GuardRule<AppRoute> {
        @override
        bool canPopRule(AppRoute route) => !route.hasUnsavedChanges;
      
        @override
        FutureOr<bool?> guardRuleWith(CoordinatorCore c, AppRoute route) async { /* ... */ }
      }
      

      Each *With method defaults to its non-With counterpart. guardRule defaults to null (continue chain).

    New Features

    • RouteGuard.canPopWith / canPopListenableWith: Coordinator-aware PopScope hints (default to canPop / canPopListenable).
    • RouteGuardRule.popGuard: Now runs the guardRule chain (no coordinator), matching popGuardWithguardRuleWith.
    Open source →
  3. 2.1.0 21 Jul 2026

    Nothing published for this version

  4. 2.0.3 04 Jun 2026
    Release notes
    • chore: make RedirectRule can be const
    Open source →
  5. 2.0.2 05 Mar 2026
    Release notes
    • Fix CoordinatorModular.getModule now correctly resolves the coordinator itself by registering runtimeType: this in _allModules, enabling getModule<MyCoordinator>() to work at any level of the hierarchy.
    Open source →
  6. 2.0.1 02 Mar 2026
    Release notes
    • Fix CoordinatorModular edge case cascading dispose and prevent duplicate definitions.
    Open source →
  7. 2.0.0 22 Feb 2026
    Release notes
    • Extract core function from zenrouter package
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive