Commit graph

5 commits

Author SHA1 Message Date
Shannon Booth
b4f46211d2 LibURL: Replace WTF-8 surrogates before Rust URL parsing
The Rust URL FFI used String::from_utf8_lossy() on raw bytes from C++.
That was not equivalent to the old C++ parser behavior for WTF-8 encoded
surrogates. For example a byte sequence such as ED A0 80 was treated as
three invalid UTF-8 bytes, producing three U+FFFD replacement
characters.

Instead use String::from_utf8_with_replacement_character and let Rust
borrow the input as &str.
2026-05-30 01:41:34 +02:00
Shannon Booth
4a986de52f LibURL: Optimize ASCII path/query parsing
Copy contiguous ASCII path/query runs in one slice append, instead of
processing each code point individually. Fall back to the normal state
machine for delimiters, percent escapes, non-ASCII input, and validation
cases.

This gives a 2.4x speedup on a benchmark parsing common web URLs.
2026-05-28 09:27:41 +02:00
Shannon Booth
57cc7b04ee LibURL: Expose rust host parsing over FFI
To be used instead of the C++ implementation.
2026-05-28 09:27:41 +02:00
Shannon Booth
b31e0df363 LibURL: Implement URLPattern in Rust 2026-05-28 09:27:41 +02:00
Shannon Booth
d44ff6628f LibURL: Implement a URL parser in rust 2026-05-28 09:27:41 +02:00