PackageTrack
Sign in Get early access

routemaster

Easy-to-use Flutter router for web, mobile and desktop. URL-based routing, simple navigation of tabs and nested routes.

1.1.1 5.6K downloads/mo #3673 most downloaded on pub.dev tomgilder/routemaster

What this package is like to depend on

Last release 3 months ago

20 May 2026

Ships unpredictably

gaps range from 8 days to 3.7 years

Nearly every release is documented

notes for 25 of 26 stable releases

Nothing withdrawn

no release was ever pulled

5 years old

35 releases · first in 2021

2 releases in the last 12 months

see the full history below

Release timeline

35 releases · Mar 2021 to May 2026
2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 35
  1. 1.1.1 20 May 2026
    Release notes
    • Fixed build error on Flutter 3.44+ where CupertinoPageTransitionsBuilder moved from package:flutter/material.dart to package:flutter/cupertino.dart.
    Open source →
    Release notes
    • Fixed build error on Flutter 3.44+ where CupertinoPageTransitionsBuilder moved from package:flutter/material.dart to package:flutter/cupertino.dart.
    Open source →
  2. 1.1.0 17 Feb 2026
    Release notes
    • Breaking: Minimum Dart SDK raised to 3.10, minimum Flutter raised to 3.38.1.
    • Fixed browser forward-button not working after pop/popUntil operations.
    Open source →
    Release notes
    • Breaking: Minimum Dart SDK raised to 3.10, minimum Flutter raised to 3.38.1.
    • Fixed browser forward-button not working after pop/popUntil operations.
    Open source →
  3. 1.0.1 05 Jun 2022
    Release notes
    • Fixes build warnings when using Flutter 3.0, thanks to @josephelliot-wk for the PR to fix this.
    Open source →
  4. 1.0.0 24 Apr 2022
    Release notes

    Important: this release has some major breaking changes with how Routemaster interacts with the system back button on Android and web from v0.9.

    • Minimum supported Flutter version is now 2.5.0.

    • Breaking change: by default, the Android system back button now navigates backwards chronologically, instead of just popping the navigation stack.

    • Breaking change: by default, tabs no longer add an entry to the web history stack. This means the browser back button will not navigate between tabs. To use the previous behavior, specify backBehavior: TabBackBehavior.history in the tab page's constructor.

    • Added: history property on Routemaster for chronological history navigation, for example Routemaster.of(context).history.back().

    • Added: popUntil to pop multiple times with a predicate.

    • Added: TransitionPage and TransitionBuilderPage to make it much easier to customize page push and pop animations.

    • Added: private routes - route segments that start with an underscore are not shown to the user. For example /sign-up/_stepTwo will be displayed as /sign-up in the address bar, and the user can not navigate to it by URL.

    • Added: StackPage for navigation stacks without indexed pages

    • Added: navigatorKey property to RoutemasterDelegate and PageStackNavigator. Using a GlobalKey<NavigatorState> can provide access to navigator functionality and the current context.

    • Added: length property to PageStack to find out how many pages the stack will generate.

    • Added: PageStackNavigator.builder constructor for advanced scenarios to filter which pages are shown in the navigator.

    • Fixed: an issue with getting RouteData.of(context) in some advanced circumstances.

    • Fixed: when navigating to a relative route, uses the current context's path as the base, instead of the router's current path.

    Open source →
  5. 0.10.0-dev5 14 Oct 2021 pre-release
    Release notes
    • Added: length property to PageStack to find out how many pages the stack will generate.

    • Added: PageStackNavigator.builder constructor for advanced scenarios to filter which pages are shown in the navigator.

    • Fixed: an issue with getting RouteData.of(context) in some advanced circumstances.

    • Breaking change: renamed and refactored some core Routemaster objects. Unlikely to affect anyone unless you're making custom stateful pages.

    Open source →
  6. 0.10.0-dev4 06 Oct 2021 pre-release
    Release notes
    • Fixes a bug with forward history navigation.
    Open source →
  7. 0.10.0-dev3 06 Oct 2021 pre-release
    Release notes

    Important: this release has some major breaking changes with how Routemaster
    interacts with the system back button on Android and web.

    • Minimum supported Flutter version is now 2.5.0.

    • Breaking change: by default, the Android system back button now navigates
      backwards chronologically, instead of just popping the navigation stack.

    • Breaking change: by default, tabs no longer add an entry to the web history
      stack. This means the browser back button will not navigate between tabs.
      To use the previous behavior, specify backBehavior: TabBackBehavior.history in
      the tab page's constructor.

    • Added: history property on Routemaster for chronological history navigation,
      for example Routemaster.of(context).history.back().

    • Added: popUntil to pop multiple times with a predicate.

    • Fixed: when navigating to a relative route, use the current context's path as
      the base, instead of the router's current path.

    Open source →
  8. 0.10.0-dev2 01 Aug 2021 pre-release
    Release notes
    • Added: TransitionPage and TransitionBuilderPage to make it much easier to customize page push and pop animations.

    • Added: private routes - route segments that start with an underscore are not shown to the user. For example /sign-up/_stepTwo will be displayed as /sign-up in the address bar, and the user can not navigate to it by URL.

    Open source →
  9. 0.10.0-dev1 21 Jun 2021 pre-release

    Nothing published for this version

  10. 0.9.5 11 Jul 2021
    Release notes
    • Fixed: an issue where pages would not receive query parameters
    Open source →
  11. 0.9.4 17 Jun 2021
    Release notes
    • Fixed: an issue where pages were incorrectly rebuilding, causing state such as the active tab to reset
    • Fixed: you can now use the ternary operator in page builders without having to do extra casts
    Open source →
    Release notes
    • Fixed: an issue where pages were incorrectly rebuilding, causing state such as the active tab to reset
    • Fixed: you can now use the ternary operator in page builders without having to do extra casts
    Open source →
  12. 0.9.4-dev1 14 Jun 2021 pre-release

    Nothing published for this version

  13. 0.9.3 01 Jun 2021
    Release notes
    • Fixed: incorrect path reference in file (thanks to Thomas Frantz for PR)
    Open source →
    Release notes
    • Fixed: incorrect path reference in file (thanks to Thomas Frantz for PR)
    Open source →
  14. 0.9.2 31 May 2021
    Release notes
    • Fixed: navigating to an unknown page on startup could throw an exception
    Open source →
    Release notes
    • Fixed: navigating to an unknown page on startup could throw an exception
    Open source →
  15. 0.9.1 31 May 2021
    Release notes
    • Fixed: issue where routesBuilder could be called outside the build phase.
    Open source →
  16. 0.9.0 27 May 2021
    Release notes
    • Breaking change: PageStackNavigator no longer automatically provides a HeroController - to use heroes, wrap the navigator in a HeroControllerScope
    • Breaking change: refactored PageWrapper and StatefulPage (this is unlikely to affect you)
    • Added a new property to get the current route: Routemaster.of(context).currentRoute
    • Added documentation to all classes, properties and methods
    • Fixed: RouteData.of(context) sometimes throwing when navigating away from a page
    • Fixed: issue with rebuilding routes when RoutemasterDelegate is recreated
    • Fixed: widgets rebuilding when RoutemasterDelegate is recreated
    Open source →
  17. 0.9.0-dev3 26 May 2021 pre-release

    Nothing published for this version

  18. 0.9.0-dev2 17 May 2021 pre-release

    Nothing published for this version

  19. 0.9.0-dev1 17 May 2021 pre-release

    Nothing published for this version

  20. 0.8.1 16 May 2021

    Nothing published for this version

  21. 0.8.0 15 May 2021
    Release notes
    • Breaking change: Guard properties have been renamed: validate is now canNavigate and onValidationFailed is now onNavigationFailed
    • Breaking change: removed abstract RouteConfig class; to create custom routing maps, inherit from RouteMap
    • Deprecation: StackNavigator has been renamed PageStackNavigator
    • Added NotFound return page type
    • Added ability to customise the top-level navigator with RoutemasterDelegate.builder
    • Added ability to use tabs with a custom page type
    • Fixed replace() not working with hashes on web
    • Fixed path URL strategy not working when it's set outside Routemaster
    • Fixed tabs creating a redirect loop on web
    • Note: Use of Guard is no longer recommended - use standard if statements and NotFound or Redirect
    Open source →
  22. 0.7.2 06 May 2021
    Release notes
    • Fixed pathTemplate property on RouteData
    Open source →
  23. 0.7.1 04 May 2021
    Release notes
    • Fixed paths using backslashes on Windows
    Open source →
  24. 0.7.0 03 May 2021
    Release notes
    • Breaking change: RouteData.path no longer returns the full path with query string, to match Dart's Uri object. Use RouteData.toString() or RouteData.fullPath for the entire path including query string.
    • Breaking change: Guard now takes a builder method instead of a child property
    • Added support for return values via pop('Result')
    • Added support for getting the Route object when pushing a new path
    • Fixed an issue where subpages wouldn't push on top of a tab page
    • Fixed an issue where query string values were lost after using the back button
    Open source →
  25. 0.6.2 29 Apr 2021
    Release notes
    • Support for absolute paths in tab child routes
    Open source →
  26. 0.6.1 29 Apr 2021
    Release notes
    • Fixed building against Flutter master branch
    Open source →
  27. 0.6.0 26 Apr 2021
    Release notes
    • Added SafeArea to default 404 page
    • Fixed an issue navigating with relative paths and query strings
    • Fixed an issue where the controller didn't update when tab length changed
    Open source →
  28. 0.5.0 26 Apr 2021
    Release notes
    • Fixed an issue where the root navigator would rebuild unnecessarily
    • Added more useful assert errors
    • Added default body for RoutemasterObserver.didChangeRoute so you're not forced to override it
    Open source →
  29. 0.4.0 24 Apr 2021
    Release notes
    • Added support for RoutemasterObserver in RoutemasterDelegate
    • Added support for NavigatorObserver in StackNavigator
    • Renamed tabController to controller
    Open source →
  30. 0.3.1 21 Apr 2021
    Release notes
    • Bug fix for reusing stacks in multiple navigators
    Open source →
  31. 0.3.0 20 Apr 2021
    Release notes
    • Added StackNavigator to simplify API
    • Support for non-hash URLs on web - Routemaster.setPathUrlStrategy()
    • Support for hero animations in nested navigators
    Open source →
  32. 0.2.0 04 Apr 2021
    Release notes
    • Re-work guards and redirects to make API simpler
    Open source →
  33. 0.1.0 02 Apr 2021
    Release notes
    • API hopefully becoming stable
    • More flexible and customisable router config
    • Support for "404" pages via onUnknownRoute
    • Added Dashazon example, see example/book_store/
    Open source →
  34. 0.0.2 12 Mar 2021
    Release notes
    • Hugely improved and totally refactored API
    • Null safety
    Open source →
  35. 0.0.1 03 Mar 2021
    Release notes
    • Initial first version
    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