actix-router
Resource path matching and router
0.5.4
74M downloads/mo
#960 most downloaded on crates.io
actix/actix-web
What this package is like to depend on
Last release 6 months ago
18 Feb 2026
Ships unpredictably
gaps range from 1 weeks to 1.8 years
Nearly every release is documented
notes for 19 of 19 stable releases
2 versions withdrawn
withdrawn after publishing
7 years old
28 releases · first in 2019
1 release in the last 12 months
see the full history below
Release timeline
28 releases · Mar 2019 to Feb 2026
2020
2021
2022
2023
2024
2025
2026
Releases
latest 28-
0.5.418 Feb 2026 -
0.5.319 May 2024Release notes
Open source →- Add
unicodecrate feature (on-by-default) to switch betweenregexandregex-liteas a trade-off between full unicode support and binary size. - Minimum supported Rust version (MSRV) is now 1.72.
- Add
-
0.5.224 Dec 2023Release notes
Open source →- Minimum supported Rust version (MSRV) is now 1.68 due to transitive
timedependency.
- Minimum supported Rust version (MSRV) is now 1.68 due to transitive
-
0.5.119 Sep 2022Release notes
Open source →- Correct typo in error string for
i32deserialization. #2876 - Minimum supported Rust version (MSRV) is now 1.59 due to transitive
timedependency.
- Correct typo in error string for
-
0.5.022 Feb 2022Release notes
Open source →Added
- Add
Path::as_str. #2590 - Add
ResourceDef::set_name. #373 - Add
RouterBuilder::push. #2612 - Implement
IntoPatternsforbytestring::ByteString. #372 - Introduce
ResourceDef::join. #380 - Introduce
ResourceDef::pattern_iterto get an iterator over all patterns in a multi-pattern resource. #373 Resourceis now implemented for&mut Path<_>andRefMut<Path<_>>. #2568- Support
build_resource_pathon multi-pattern resources. #2356 - Support multi-pattern prefixes and joins. #2356
Changed
- Change signature of
ResourceDef::capture_match_info_fnto removeuser_dataparameter. #2612 - Deprecate
Path::path. #2590 - Disallow prefix routes with tail segments. #379
- Enforce path separators on dynamic prefixes. #378
- Minimum supported Rust version (MSRV) is now 1.54.
- Prefix segments now always end with with a segment delimiter or end-of-input. #2355
- Prefix segments with trailing slashes define a trailing empty segment. #2355
Quoter::requotenow returnsOption<Vec<u8>>. #2613- Re-work
IntoPatternstrait, adding aPatternsenum. #372 - Rename
Path::{len => segment_count}to be more descriptive of its purpose. #370 - Rename
ResourceDef::{is_prefix_match => find_match}. #373 - Rename
ResourceDef::{match_path => capture_match_info}. #373 - Rename
ResourceDef::{match_path_checked => capture_match_info_fn}. #373 - Rename
ResourceDef::{resource_path => resource_path_from_iter}. #371 - Rename
ResourceDef::{resource_path_named => resource_path_from_map}. #371 - Rename
Router::{*_checked => *_fn}. #373 - Replace
Option<U>withUinRouterAPI. #2612 Resourcetrait now uses an associated type,Path, instead of a generic parameter. #2568ResourceDef::patternnow returns the first pattern in multi-pattern resources. #2356ResourceDef::resource_path_from_iternow takes anIntoIterator. #373- Return type of
ResourceDef::nameis nowOption<&str>. #373 - Return type of
ResourceDef::patternis nowOption<&str>. #373
Fixed
- Fix
ResourceDef'sPartialEqimplementation. #373 - Fix segment interpolation leaving
Pathin unintended state after matching. #368 - Improve malformed path error message. #384
PathDeserializernow decodes all percent encoded characters in dynamic segments. #2566- Relax bounds on
Router::recognize*andResourceDef::capture_match_info. #2612 - Static patterns in multi-patterns are no longer interpreted as regex. #366
Removed
<details> <summary>0.5.0 Pre-Releases</summary>
- Add
-
0.5.0-rc.301 Feb 2022 pre-releaseRelease notes
Open source →- Remove unused
ResourceInfo. #2612 - Add
RouterBuilder::push. #2612 - Change signature of
ResourceDef::capture_match_info_fnto removeuser_dataparameter. #2612 - Replace
Option<U>withUinRouterAPI. #2612 - Relax bounds on
Router::recognize*andResourceDef::capture_match_info. #2612 Quoter::requotenow returnsOption<Vec<u8>>. #2613
- Remove unused
-
0.5.0-rc.221 Jan 2022 pre-release -
0.5.0-rc.114 Jan 2022 pre-release -
0.5.0-beta.404 Jan 2022 pre-releaseRelease notes
Open source →PathDeserializernow decodes all percent encoded characters in dynamic segments. #2566- Minimum supported Rust version (MSRV) is now 1.54.
-
0.5.0-beta.317 Dec 2021 pre-release -
0.5.0-beta.209 Sep 2021 pre-releaseRelease notes
Open source →- Introduce
ResourceDef::join. #380 - Disallow prefix routes with tail segments. #379
- Enforce path separators on dynamic prefixes. #378
- Improve malformed path error message. #384
- Prefix segments now always end with with a segment delimiter or end-of-input. #2355
- Prefix segments with trailing slashes define a trailing empty segment. #2355
- Support multi-pattern prefixes and joins. #2356
ResourceDef::patternnow returns the first pattern in multi-pattern resources. #2356- Support
build_resource_pathon multi-pattern resources. #2356 - Minimum supported Rust version (MSRV) is now 1.51.
- Introduce
-
0.5.0-beta.120 Jul 2021 pre-releaseRelease notes
Open source →- Fix a bug in multi-patterns where static patterns are interpreted as regex. #366
- Introduce
ResourceDef::pattern_iterto get an iterator over all patterns in a multi-pattern resource. #373 - Fix segment interpolation leaving
Pathin unintended state after matching. #368 - Fix
ResourceDefPartialEqimplementation. #373 - Re-work
IntoPatternstrait, adding aPatternsenum. #372 - Implement
IntoPatternsforbytestring::ByteString. #372 - Rename
Path::{len => segment_count}to be more descriptive of it's purpose. #370 - Rename
ResourceDef::{resource_path => resource_path_from_iter}. #371 ResourceDef::resource_path_from_iternow takes anIntoIterator. #373- Rename
ResourceDef::{resource_path_named => resource_path_from_map}. #371 - Rename
ResourceDef::{is_prefix_match => find_match}. #373 - Rename
ResourceDef::{match_path => capture_match_info}. #373 - Rename
ResourceDef::{match_path_checked => capture_match_info_fn}. #373 - Remove
ResourceDef::name_mutand introduceResourceDef::set_name. #373 - Rename
Router::{*_checked => *_fn}. #373 - Return type of
ResourceDef::nameis nowOption<&str>. #373 - Return type of
ResourceDef::patternis nowOption<&str>. #373
</details>
-
0.4.006 Jun 2021Release notes
Open source →- When matching path parameters,
%25is now kept in the percent-encoded form; no longer decoded to%. #357 - Path tail patterns now match new lines (
\n) in request URL. #360 - Fixed a safety bug where
Pathcould return a malformed string after percent decoding. #359 - Methods
Path::{add, add_static}now takeimpl Into<Cow<'static, str>>. #345
- When matching path parameters,
-
0.3.031 Dec 2019 withdrawnRelease notes
Open source →- Version was yanked previously. See https://crates.io/crates/actix-router/0.3.0
-
0.2.706 Feb 2021 -
0.2.609 Jan 2021 -
0.2.521 Sep 2020Release notes
Open source →- Update serde_urlencoded to "0.6.1"
- Increase TestServerRuntime timeouts from 500ms to 3000ms
- Do not override current
System
-
0.2.431 Dec 2019 -
0.2.325 Dec 2019 -
0.2.225 Dec 2019 -
0.2.125 Dec 2019 -
0.2.007 Dec 2019 -
0.1.515 May 2019 -
0.1.415 May 2019 withdrawn -
0.1.323 Apr 2019 -
0.1.208 Apr 2019 -
0.1.104 Apr 2019 -
0.1.009 Mar 2019