A high performance, zero-copy URL router.
Router::remove
.Debug
for Router
.This a large release containing a number of new features and breaking changes.
{x}
and catch-all parameters with {*x}
. This allows for more flexibility and support for more complex routes in the future.{
and }
characters can be escaped with {{
and }}
in static routes./foo
and /foo/
are now treated as completely disconnected. To achieve redirect behavior, routes must be registered twice, with and without a trailing slash./user/:filter/search
and /user/:id
no longer overlap. (#13).Router::fix_path
was removedMatchError::ExtraTrailingSlash
bug was fixed (#22)/*foo
and /bar
are now allowed to overlap, with /bar
prioritized (#18)/foo/
no longer matches /foo/*bar
, and is allowed to exist on it's own/
, e.g. /foo.js
will match /*filepath
with a value of foo.js
, not /foo.js
Error::MalformedPath
was removed in favor of Error::InvalidCatchAll
Node
to Router
Node::path_ignore_case
to Router::fix_path
MatchError
is now an enum, with more detailed trailing slash information.