Releases: medz/unrouter
Releases · medz/unrouter
v0.11.0
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 declarativeLinknavigation. - Added route scope hooks for location, params, query, and typed route state access.
- Added Flutter router integration and runnable examples (
QuickstartandAdvanced).
Documentation
- Revamped
README.mdwith 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
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
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
jaspr_unrouter 0.1.0
- First stable Jaspr adapter release.
- Direct core
Unrouterintegration with reduced forwarding layers. - Includes complete Jaspr storefront example.
- Includes server-render and runtime behavior tests.
flutter_unrouter v0.1.0
flutter_unrouter 0.1.0
- First stable Flutter adapter release.
- Directly inherits core
Unrouterwith 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
Changed
- Removed
package:unrouter/devtools.dartand 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>(), removedtypedTimeline, removed public
routeRequestcommand, and stopped exporting controller lifecycle/composer
APIs frompackage:unrouter/unrouter.dart.
v0.8.0
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,routeWithLoaderwith cooperative cancellation (RouteExecutionSignal) - Shell routing primitives:
shell()/branch()with branch-stack restoration - Typed push result flows:
push<T>()+pop(result)withcompletePendingResultcontrols - 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.dartis 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
- Pub package: https://pub.dev/packages/unrouter
- Changelog: https://github.com/medz/unrouter/blob/main/CHANGELOG.md
- Documentation: https://github.com/medz/unrouter/tree/main/doc
v0.7.1
v0.7.0
Features
- File-based routing now supports group segments like
(auth)and optional(group).dartpathless 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
Testing
Documentation
Example
v0.6.0
Breaking Changes
NavigateandLinknow use named arguments withnameorpath;query
replacesqueryParametersfor navigation and URI generation.- Guard APIs now use
RouteLocationinGuardContextand accept named route or
path data inGuardResult.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 fromcontext.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/watchwith a
unrouter.config.dartconfig file and a routes generator from a pages
directory. - Route metadata for generators: introduce
RouteMetaso pages can declare
routenameandguardsfor 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
RouteLocationandRouteStateequality/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.