https://github.com/denoland/rust-urlpattern
Rust implementation of the `URLPattern` web API
https://github.com/denoland/rust-urlpattern
rust urlpattern web
Last synced: 7 months ago
JSON representation
Rust implementation of the `URLPattern` web API
- Host: GitHub
- URL: https://github.com/denoland/rust-urlpattern
- Owner: denoland
- License: mit
- Created: 2021-08-14T11:44:27.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-09-17T13:57:07.000Z (8 months ago)
- Last Synced: 2025-09-19T21:39:26.365Z (7 months ago)
- Topics: rust, urlpattern, web
- Language: Rust
- Homepage:
- Size: 90.8 KB
- Stars: 65
- Watchers: 15
- Forks: 23
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# urlpattern
This crate implements the [`URLPattern` web API][urlpattern] in Rust. We aim to
follow [the specification][spec] as closely as possible.
[urlpattern]: https://github.com/WICG/urlpattern
[spec]: https://wicg.github.io/urlpattern/
## Example
```rust
use urlpattern::UrlPattern;
use urlpattern::UrlPatternInput;
use urlpattern::UrlPatternInit;
use urlpattern::UrlPattern;
use urlpattern::UrlPatternInit;
use urlpattern::UrlPatternMatchInput;
fn main() {
// Create the UrlPattern to match against.
let init = UrlPatternInit {
pathname: Some("/users/:id".to_owned()),
..Default::default()
};
let pattern = ::parse(init).unwrap();
// Match the pattern against a URL.
let url = "https://example.com/users/123".parse().unwrap();
let result = pattern.exec(UrlPatternMatchInput::Url(url)).unwrap().unwrap();
assert_eq!(result.pathname.groups.get("id").unwrap(), "123");
}
```
## Contributing
We appreciate your help!
The code of conduct from the Deno repository applies here too:
https://github.com/denoland/deno/blob/main/.github/CODE_OF_CONDUCT.md.