Skip to content

Releases: medz/unrouter

v0.11.0

15 Feb 18:21

Choose a tag to compare

0.11.0

Changes since unrouter-v0.10.0 (2026-02-11), based on PR #36.

New Features

  • Unified routing API: guards, data loaders, named routes, Outlet-based nested views, and declarative Link navigation.
  • Added route scope hooks for location, params, query, and typed route state access.
  • Added Flutter router integration and runnable examples (Quickstart and Advanced).

Documentation

  • Revamped README.md with centered brand header, badges, Quick Start, Core Concepts, and a consolidated API reference.

Tests

  • Added comprehensive unit/widget coverage for guards, Outlet, URLSearchParams, and routing flows.

Chores

  • Added CI workflow for Flutter analysis and tests.

unrouter v0.10.0

10 Feb 21:04

Choose a tag to compare

unrouter 0.10.0

  • Slimmed core runtime and controller APIs for cleaner composition.
  • Removed machine-oriented internal surfaces from core.
  • Refined RouteState typed parsing helpers for params/query.
  • Simplified shell internals and route record naming alignment.
  • Added complete pure Dart example and behavior-focused tests.
  • Includes runtime fixes for sync lifecycle and delegate back-handling.

nocterm_unrouter v0.1.0

10 Feb 21:04

Choose a tag to compare

nocterm_unrouter 0.1.0

  • First stable Nocterm adapter release.
  • Lean runtime integration over core Unrouter.
  • Includes complete keyboard-first terminal storefront example.
  • Includes runtime/navigation/fallback behavior tests.

jaspr_unrouter v0.1.0

10 Feb 21:04

Choose a tag to compare

jaspr_unrouter 0.1.0

  • First stable Jaspr adapter release.
  • Direct core Unrouter integration with reduced forwarding layers.
  • Includes complete Jaspr storefront example.
  • Includes server-render and runtime behavior tests.

flutter_unrouter v0.1.0

10 Feb 21:04

Choose a tag to compare

flutter_unrouter 0.1.0

  • First stable Flutter adapter release.
  • Directly inherits core Unrouter with lean runtime integration.
  • Includes complete Flutter example (shell, guards, redirects, loaders, typed push/pop).
  • Includes runtime and widget coverage for route sync, scope helpers, delegate fallbacks, and shell behavior.

v0.9.0

06 Feb 21:06

Choose a tag to compare

Changed

  • Removed package:unrouter/devtools.dart and all built-in inspector/replay
    implementations to keep the package focused on core routing and machine APIs.
  • Simplified docs, tests, and example app to match the slimmer public surface.
  • Simplified machine API to command-first dispatch by removing declarative
    action/envelope layers and related schema contracts.
  • Tightened machine/controller public surface: merged dispatch entrypoint into
    machine.dispatch<T>(), removed typedTimeline, removed public
    routeRequest command, and stopped exporting controller lifecycle/composer
    APIs from package:unrouter/unrouter.dart.

v0.8.0

06 Feb 14:55
15d1092

Choose a tag to compare

Summary

unrouter 0.8.0 is a full package reconstruction focused on typed routing, explicit API layering, diagnostics tooling, and benchmark coverage.

Added

  • Typed core router API: Unrouter<R extends RouteData>, route<T>(), RouteParserState
  • Async route hooks: guards, redirect, routeWithLoader with cooperative cancellation (RouteExecutionSignal)
  • Shell routing primitives: shell() / branch() with branch-stack restoration
  • Typed push result flows: push<T>() + pop(result) with completePendingResult controls
  • Machine API entrypoint: package:unrouter/machine.dart
  • Devtools API entrypoint: package:unrouter/devtools.dart
  • Differential benchmark project under bench/ (unrouter / go_router / zenrouter)

Changed

  • package:unrouter/unrouter.dart is now the default core entrypoint
  • Machine/devtools APIs require explicit import (machine.dart, devtools.dart)
  • Package promoted to repository root and example app rebuilt around real typed flows and /debug
  • Benchmark workflow consolidated into bench/main.dart
  • Internal source layout reorganized to lib/src/core, lib/src/runtime, lib/src/devtools, lib/src/platform

Fixed

  • Redirect loop / max-hop diagnostics and safety behavior
  • Shell branch-stack restoration correctness across recreation and back/forward traversal
  • Deterministic machine/replay parity coverage

Links

v0.7.1

24 Jan 16:46

Choose a tag to compare

Fixes

  • File-based catch-all pages now expose named wildcard params for [...name] patterns and *name route segments. (PR #30, commit ab7bf4b)

v0.7.0

24 Jan 16:21

Choose a tag to compare

Features

  • File-based routing now supports group segments like (auth) and optional (group).dart pathless layouts. (PR #28, commit afd9b4a)
  • Allow layout files to coexist with index children (e.g. users.dart + users/index.dart) for nested routes. (PR #28, commit afd9b4a)

Improvements

  • CLI route generation now understands group layouts and layout+index nesting. (PR #28, commit afd9b4a)

Fixes

  • Guard against empty city segments in the example concerts page. (PR #28, commit afd9b4a)

Testing

  • Added CLI tests for group layouts and layout+index nesting. (PR #28, commit afd9b4a)

Documentation

  • Document group segments and layout/index behavior; update example README. (PR #28, commit afd9b4a)

Example

  • Migrate the example app to file-based routing with generated routes. (PR #28, commit afd9b4a)

v0.6.0

24 Jan 14:00

Choose a tag to compare

Breaking Changes

  • Navigate and Link now use named arguments with name or path; query
    replaces queryParameters for navigation and URI generation.
  • Guard APIs now use RouteLocation in GuardContext and accept named route or
    path data in GuardResult.redirect.

Features

  • Named routes: add Inlet.name, name-based navigation, and
    Navigate.route(...) for URI generation from names or path patterns.
  • Route location names: expose the matched route name via RouteLocation
    (available from context.location).
  • Path patterns: allow params, optional segments, and wildcards to be
    substituted when navigating or generating URIs.
  • File-based routing (CLI): add unrouter init/scan/generate/watch with a
    unrouter.config.dart config file and a routes generator from a pages
    directory.
  • Route metadata for generators: introduce RouteMeta so pages can declare
    route name and guards for generated routes.

Improvements

  • Route matching now prefers more specific routes (static > params > wildcard),
    with definition order as the tiebreaker.
  • File routing generator supports nested routes, dynamic segments, and
    wildcards, with guard/name inference where possible.
  • CLI supports --json, --quiet, --verbose, short aliases, and improved
    output formatting (including watch status panels).

Fixes

  • Encode dynamic path segments when building URIs and throw clear errors for
    missing wildcard params.
  • Include route names in RouteLocation and RouteState equality/hashCode.
  • Harden CLI file parsing and escaping for generated config/routes.

Testing

  • Added tests for named routes and specificity-based matching.
  • Added CLI tests for init/scan/generate and file routing edge cases.

Documentation

  • Document file-based routing conventions, CLI usage, and RouteMeta.