Type-safe, no codegen
Routes are plain sealed classes; an exhaustive switch is your route
table. No build_runner, no .gr.dart, no annotations.
A tiny, code-generation-free router for Flutter. Type-safe. Deep linking that just works. Nested tabs with their own back stacks — built in.
That’s the real example app running in your browser — tap the tabs, open a note, push a full-page photo, and watch the URL change and back/forward work, each tab keeping its own history.
Every router pushes navigation complexity somewhere — go_router into
redirects/shells, auto_route into a build step, Navigator 2.0 onto you.
raku_router’s bet: for most apps the real need is modest, and a small reactive core
beats a big framework.
Type-safe, no codegen
Routes are plain sealed classes; an exhaustive switch is your route
table. No build_runner, no .gr.dart, no annotations.
Nested tabs built in
Each tab keeps its own persistent back stack — what StatefulShellRoute
does, but by default.
Deep linking from a tree
A URL’s structure reconstructs the navigation stack, both ways — and browser back/forward preserves state.
No state / design-system dep
The core only needs flutter. Drops into Material, Cupertino, or a custom
design system equally. WASM-ready.
Tutorial
Build a notes app step by step — tabs, a detail screen, a guard, and deep linking.
Concepts
How it works: the mental model, URL ⇄ stack, and how tabs preserve state.
Recipes
Copy-paste solutions for bottom-nav, auth gates, deep links, and more.
API reference
The full dartdoc on pub.dev — every public symbol documented.