PackageTrack
Sign in Get early access

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
Release Pre-release Withdrawn

Releases

latest 28
  1. 0.5.4 18 Feb 2026
    Release notes
    • Minimum supported Rust version (MSRV) is now 1.88.
    • Support deserialize_any in PathDeserializer (enables derived #[serde(untagged)] enums in path segments). #2881
    • Fix stale path segment indices after path rewrites, preventing out-of-bounds access during extraction. #3562
    Open source →
  2. 0.5.3 19 May 2024
    Release notes
    • Add unicode crate feature (on-by-default) to switch between regex and regex-lite as a trade-off between full unicode support and binary size.
    • Minimum supported Rust version (MSRV) is now 1.72.
    Open source →
  3. 0.5.2 24 Dec 2023
    Release notes
    • Minimum supported Rust version (MSRV) is now 1.68 due to transitive time dependency.
    Open source →
  4. 0.5.1 19 Sep 2022
    Release notes
    • Correct typo in error string for i32 deserialization. #2876
    • Minimum supported Rust version (MSRV) is now 1.59 due to transitive time dependency.
    Open source →
  5. 0.5.0 22 Feb 2022
    Release notes

    Added

    • Add Path::as_str. #2590
    • Add ResourceDef::set_name. #373
    • Add RouterBuilder::push. #2612
    • Implement IntoPatterns for bytestring::ByteString. #372
    • Introduce ResourceDef::join. #380
    • Introduce ResourceDef::pattern_iter to get an iterator over all patterns in a multi-pattern resource. #373
    • Resource is now implemented for &mut Path<_> and RefMut<Path<_>>. #2568
    • Support build_resource_path on multi-pattern resources. #2356
    • Support multi-pattern prefixes and joins. #2356

    Changed

    • Change signature of ResourceDef::capture_match_info_fn to remove user_data parameter. #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::requote now returns Option<Vec<u8>>. #2613
    • Re-work IntoPatterns trait, adding a Patterns enum. #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> with U in Router API. #2612
    • Resource trait now uses an associated type, Path, instead of a generic parameter. #2568
    • ResourceDef::pattern now returns the first pattern in multi-pattern resources. #2356
    • ResourceDef::resource_path_from_iter now takes an IntoIterator. #373
    • Return type of ResourceDef::name is now Option<&str>. #373
    • Return type of ResourceDef::pattern is now Option<&str>. #373

    Fixed

    • Fix ResourceDef's PartialEq implementation. #373
    • Fix segment interpolation leaving Path in unintended state after matching. #368
    • Improve malformed path error message. #384
    • PathDeserializer now decodes all percent encoded characters in dynamic segments. #2566
    • Relax bounds on Router::recognize* and ResourceDef::capture_match_info. #2612
    • Static patterns in multi-patterns are no longer interpreted as regex. #366

    Removed

    • ResourceDef::name_mut. #373
    • Unused ResourceInfo. #2612

    <details> <summary>0.5.0 Pre-Releases</summary>

    Open source →
  6. 0.5.0-rc.3 01 Feb 2022 pre-release
    Release notes
    • Remove unused ResourceInfo. #2612
    • Add RouterBuilder::push. #2612
    • Change signature of ResourceDef::capture_match_info_fn to remove user_data parameter. #2612
    • Replace Option<U> with U in Router API. #2612
    • Relax bounds on Router::recognize* and ResourceDef::capture_match_info. #2612
    • Quoter::requote now returns Option<Vec<u8>>. #2613
    Open source →
  7. 0.5.0-rc.2 21 Jan 2022 pre-release
    Release notes
    • Add Path::as_str. #2590
    • Deprecate Path::path. #2590
    Open source →
  8. 0.5.0-rc.1 14 Jan 2022 pre-release
    Release notes
    • Resource trait now have an associated type, Path, instead of the generic parameter. #2568
    • Resource is now implemented for &mut Path<_> and RefMut<Path<_>>. #2568
    Open source →
  9. 0.5.0-beta.4 04 Jan 2022 pre-release
    Release notes
    • PathDeserializer now decodes all percent encoded characters in dynamic segments. #2566
    • Minimum supported Rust version (MSRV) is now 1.54.
    Open source →
  10. 0.5.0-beta.3 17 Dec 2021 pre-release
    Release notes
    • Minimum supported Rust version (MSRV) is now 1.52.
    Open source →
  11. 0.5.0-beta.2 09 Sep 2021 pre-release
    Release notes
    • 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::pattern now returns the first pattern in multi-pattern resources. #2356
    • Support build_resource_path on multi-pattern resources. #2356
    • Minimum supported Rust version (MSRV) is now 1.51.
    Open source →
  12. 0.5.0-beta.1 20 Jul 2021 pre-release
    Release notes
    • Fix a bug in multi-patterns where static patterns are interpreted as regex. #366
    • Introduce ResourceDef::pattern_iter to get an iterator over all patterns in a multi-pattern resource. #373
    • Fix segment interpolation leaving Path in unintended state after matching. #368
    • Fix ResourceDef PartialEq implementation. #373
    • Re-work IntoPatterns trait, adding a Patterns enum. #372
    • Implement IntoPatterns for bytestring::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_iter now takes an IntoIterator. #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_mut and introduce ResourceDef::set_name. #373
    • Rename Router::{*_checked => *_fn}. #373
    • Return type of ResourceDef::name is now Option<&str>. #373
    • Return type of ResourceDef::pattern is now Option<&str>. #373

    </details>

    Open source →
  13. 0.4.0 06 Jun 2021
    Release notes
    • When matching path parameters, %25 is 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 Path could return a malformed string after percent decoding. #359
    • Methods Path::{add, add_static} now take impl Into<Cow<'static, str>>. #345
    Open source →
  14. 0.3.0 31 Dec 2019 withdrawn
    Release notes
    • Version was yanked previously. See https://crates.io/crates/actix-router/0.3.0
    Open source →
  15. 0.2.7 06 Feb 2021
    Release notes
    • Add Router::recognize_checked #247
    Open source →
  16. 0.2.6 09 Jan 2021
    Release notes
    • Use bytestring version range compatible with Bytes v1.0. #246
    Open source →
  17. 0.2.5 21 Sep 2020
    Release notes
    • Fix from_hex() method
    Open source →
    Release notes
    • Update serde_urlencoded to "0.6.1"
    • Increase TestServerRuntime timeouts from 500ms to 3000ms
    • Do not override current System
    Open source →
  18. 0.2.4 31 Dec 2019
    Release notes
    • Add ResourceDef::resource_path_named() path generation method
    Open source →
    Release notes
    • Update actix-server to 0.6
    Open source →
  19. 0.2.3 25 Dec 2019
    Release notes
    • Add impl IntoPattern for &String
    Open source →
    Release notes
    • Add delete, options, patch methods to TestServerRunner
    Open source →
  20. 0.2.2 25 Dec 2019
    Release notes
    • Use IntoPattern for RouterBuilder::path()
    Open source →
    Release notes
    • Add .put() and .sput() methods
    Open source →
  21. 0.2.1 25 Dec 2019
    Release notes
    • Add IntoPattern trait
    • Add multi-pattern resources
    Open source →
    Release notes
    • Add license files
    Open source →
  22. 0.2.0 07 Dec 2019
    Release notes
    • Update http to 0.2
    • Update regex to 1.3
    • Use bytestring instead of string
    Open source →
    Release notes
    • Update awc and actix-http deps
    Open source →
  23. 0.1.5 15 May 2019
    Release notes
    • Remove debug prints
    Open source →
  24. 0.1.4 15 May 2019 withdrawn
    Release notes
    • Fix checked resource match
    Open source →
  25. 0.1.3 23 Apr 2019
    Release notes
    • Added support for remainder match (i.e "/path/{tail}*")
    Open source →
  26. 0.1.2 08 Apr 2019
    Release notes
    • Export Quoter type
    • Allow to reset Path instance
    Open source →
  27. 0.1.1 04 Apr 2019
    Release notes
    • Get dynamic segment by name instead of iterator.
    Open source →
    Release notes
    • Always make new connection for http client
    Open source →
  28. 0.1.0 09 Mar 2019
    Release notes
    • Initial release
    Open source →
    Release notes
    • No changes
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive