urlable
A comprehensive URL manipulation library for Rust, providing utilities for parsing, encoding, and manipulating URLs.
Features
⚠️ Breaking Changes in 0.2.0
Warning: If you are upgrading from urlable 0.1.0 to 0.2.0, please be aware of the following breaking changes:
- Query string parsing now returns
QueryObjectinstead ofHashMap - Query parameter values now use
serde_json::Valuetype to support more complex data structures - Some method names and signatures have changed for better API experience
- Removed several deprecated methods
Note: urlable 0.1.0 is no longer maintained. We strongly recommend upgrading to the latest 0.2.0 version for better functionality and security updates.
- 🔍 URL parsing and manipulation
- 🔒 Safe encoding/decoding of URL components
- 🧩 Query string handling
- 🌐 Punycode domain encoding
- 🛠 Path manipulation utilities
Installation
Add this to your Cargo.toml:
[]
= "0.1.0"
Usage Examples
URL Parsing
use parse_url;
let url = parse_url;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
Query String Handling
use ;
use HashMap;
// Parse query string
let query = ;
assert_eq!;
// Build query string
let mut query = new;
query.insert;
let query_string = stringify_query; // "key=value"
URL Encoding/Decoding
use ;
// Path encoding
assert_eq!;
assert_eq!;
// Query value encoding
assert_eq!;
assert_eq!;
Path Manipulation
use ;
assert_eq!;
assert_eq!;
assert_eq!;
Query String Processing
use ;
// Parse query parameters
let query = get_query;
assert_eq!;
// Build query string
let query = new;
query.insert;
let query_string = with_query; // "foo=bar&baz=qux"
API Reference
Parsing Functions
parse_url(input: &str) -> ParsedURLparse_url_with_protocol(input: &str, proto: &str) -> ParsedURLparse_path(input: &str) -> ParsedURLparse_auth(input: &str) -> ParsedAuthparse_host(input: &str) -> ParsedHost
Encoding Functions
encode(text: &str) -> Stringencode_hash(text: &str) -> Stringencode_query_value(input: &str) -> Stringencode_query_key(text: &str) -> Stringencode_path(text: &str) -> Stringencode_param(text: &str) -> Stringencode_host(text: &str) -> String
Decoding Functions
decode(text: &str) -> Stringdecode_path(text: &str) -> Stringdecode_query_key(text: &str) -> Stringdecode_query_value(text: &str) -> String
URL Manipulation Functions
with_trailing_slash(input: &str, respect_query_fragment: bool) -> Stringwithout_trailing_slash(input: &str, respect_query_fragment: bool) -> Stringwith_leading_slash(input: &str) -> Stringwithout_leading_slash(input: &str) -> Stringclean_double_slashes(input: &str) -> Stringjoin_url(base: &str, input: &str) -> Stringjoin_relative_url(inputs: &[&str]) -> String
Query String Functions
parse_query<T: Default>(parameters_string: &str) -> Tstringify_query(query: &QueryObject) -> Stringencode_query_item(key: &str, value: &QueryValue) -> Stringget_query(url: &str) -> QueryObjectwith_query(query: &QueryObject) -> String