lukepighetti/fluro has 3,707 GitHub stars and 410 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-06 18:22 UTC. Last push 2023-03-22.
Fluro is a Flutter routing library that adds flexible routing options like wildcards, named parameters and clear route definitions.
What you can do
- Simple route navigation
- Function handlers (map to a function instead of a route)
- Wildcard parameter matching
- Querystring parameter parsing
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
The brightest, hippest, coolest router for Flutter.
Features
- Simple route navigation
- Function handlers (map to a function instead of a route)
- Wildcard parameter matching
- Querystring parameter parsing
- Common transitions built-in
- Simple custom transition creation
- Follows
stableFlutter channel - Null-safety
Example Project
There is a pretty sweet example project in the example folder. Check it out. Otherwise, keep reading to get up and running.
Getting started
First, you should define a new FluroRouter object by initializing it as such:
final router = FluroRouter();
It may be convenient for you to store the router globally/statically so that you can access the router in other areas in your application.
After instantiating the router, you will need to define your routes and your route handlers:
var usersHandler = Handler(handlerFunc: (BuildContext context, Map<String, dynamic> params) {
return UsersScreen(params["id"][0]);
});
void defineRoutes(FluroRouter router) {
router.define("/users/:id", handler: usersHandler);
// it is also possible to define the route transition to use
// router.define("users/:id", handler: usersHandler, transitionType: TransitionType.inFromLeft);
}
In the above example, the router will intercept a route such as
/users/1234 and route the application to the UsersScreen passing
the value 1234 as a parameter to that screen.
Navigating
You can use FluroRouter with the MaterialApp.onGenerateRoute parameter
via FluroRouter.generator. To do so, pass the function reference to
the onGenerate parameter like: onGenerateRoute: router.generator.
You can then use Navigator.push and the flutter routing mechanism will match the routes
for you.
You can also manually push to a route yourself. To do so:
router.navigateTo(context, "/users/1234", transition: TransitionType.fadeIn);
Class arguments
Don't want to use strings for params? No worries.
After pushing a route with a custom RouteSettings you can use the BuildContext.settings extension to extract the settings. Typically this would be done in Handler.handlerFunc so you can pass RouteSettings.arguments to your screen widgets.
/// Push a route with custom RouteSettings if you don't want to use path params
FluroRouter.appRouter.navigateTo(
context,
'home',
routeSettings: RouteSettings(
arguments: MyArgumentsDataClass('foo!'),
),
);
/// Extract the arguments using [BuildContext.settings.arguments] or [BuildContext.arguments] for short
var homeHandler = Handler(
handlerFunc: (context, params) {
final args = context.settings.arguments as MyArgumentsDataClass;
return HomeComponent(args);
},
);
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,417 starspublic-apis/public-apis
A collective list of free APIs
496,752 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
437,885 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,065 stars