routingkit 1.1.0 routingkit: ^1.1.0 copied to clipboard
Routing Kit - router abstractions and built-in high-performance Radix-Trie router driver.
RoutingKit
Routing Kit - router abstractions and built-in high-performance Radix-Trie router driver.
- High-performance:Based on Radix Tree implementation, efficient performance.
- Accurate:Using
/
to split trie-node nodes can accurately match routes. - Flexible:Support dynamic routing matching
Installation #
Add the dependency to your pubspec.yaml
file:
dependencies:
routingkit: ^1.0.0
Or install it with pub
:
dart pub add routingkit
# or
flutter pub add routingkit
Sponsor RoutingKit #
RoutingKit is an open source project based on the MIT license. If your Router implementation uses RoutingKit, or you find my work helpful to you, please sponsor me on GitHub Sponsors. Your support is my biggest motivation.
Getting Started #
RoutingKit improves the performance of route matching and provides a simpler API. Here is a simple example:
import 'package:routingkit/routingkit.dart';
void main() {
final router = createRouter(routes: {
'/users/:name': 0,
});
final result = router.lookup('/users/seven');
print('User name: ${result?.params('name')}'); // seven
print('Matched user value: ${result?.value}'); // 0
}
Create a router instance and register routes #
final router = createRouter();
router.register('/path', 'static route'); // matches `/path`
router.register('/path/:name', 'named route'); // matches `/path/:name<any>`
router.register('/path/foo/*', 'unnamed route'); // matches `/path/foo/<any>`
router.register('/path/bar/**', 'catchall route'); // matches `/path/bar/<any>`
Route Path Segment #
<segment>
: Constant segment, for examplefoo
only matchfoo
string.:name
: Param named segment, define a param name, match and store toParams
.*
: Unnamed segment, Similar to route naming segemnt, but does not store parameters inParams
.**
: Catchall segment, any segments are matched.
The Router
Methods #
`router.lookup(Srring path) #
Returns a Result<T>?
record, where Params stores all matched parameters and T?
store value. If T
is null
, it means no correct match.
router.register(String route, T value)
#
Register a route and store a value.
router.remove(String route)
#
Remove a registered route.
License #
RoutingKit is open-sourced software licensed under the MIT license.