netstack.fm

Rust URL with Simon Sapin

netstack.fm

Show Notes

episode 22 — Rust URL with Simon Sapin.

In this episode of Netstack.fm, Simon Sapin discusses building the rust-url crate based on the WHATWG URL specification. He also highlights that IDNA support was integrated to handle internationalized domain names, which includes critical security checks to prevent phishing from "confusable" characters that look identical to users.

Learn more:

https://docs.rs/url — rust-url is an implementation of the URL Standard for the Rust programming language https://docs.rs/idna — IDNA (Internationalizing Domain Names in Applications) and Punycode https://docs.rs/idna_adapter — unicode back end for the idna crate https://docs.rs/form_urlencoded — Parser and serializer for the application/x-www-form-urlencoded syntax, as used by HTML forms https://docs.rs/percent-encoding — Percent encoding and decoding https://servo.org/ — official servo website https://url.spec.whatwg.org/ — WHATWG URL Specificaton https://datatracker.ietf.org/doc/html/rfc5890 — Internationalized Domain Names for Applications (IDNA) (RFC) https://exyr.org/ — official website of Simon Sapin

Rama

If you like this podcast you might also like our modular network framework in Rust: https://ramaproxy.org

Chapters

00:00 Intro 00:50 Get to know Simon Sapin 05:35 Origin of rust-url 07:19 Implementing Specifications in Rust 10:05 Understanding IDNA and Its Importance 11:17 Origins of form-url / percent encoding crates 12:36 The Role of Percent Encoding in URLs 13:21 IDNA Crate Origin 15:41 Challenges with IDNA and Usability 30:13 unpacking the rust-url crate 39:25 Understanding URL Specifications and Compatibility 45:10 Url Crate Parser 52:41 Surprising Insights into URL Implementation 01:01:41 Final words 01:14:07 Outro

Netstack.FM

More information: https://netstack.fm/#episode-22 Join our Discord: https://discord.gg/29EetaSYCD Reach out to us: [email protected]

Music for this episode was composed by Dj Mailbox. Listen to his music at https://on.soundcloud.com/4MRyPSNj8FZoVGpytj

More from netstack.fm

May 26, 2026

Episode 38: Building and testing network stacks with Rama. In this Protocol Shorts episode of Netstack.fm, Glen talks with Brecht Stamper about Rama, the modular Rust framework for building clients, servers, proxies, and other network systems. Brecht shares how he came to understand Rama’s core idea that everything is a service, and why that simple input to output contract makes it easier to compose complex stacks without constantly inventing new traits or glue code.

May 5, 2026

episode 37: dial9: from black box to insight in Tokio.

Apr 25, 2026

Episode 36 – Protocol Shorts: WireGuard

Apr 15, 2026

Remaster of: Season 1 · Episode 3 — OpenTelemetry, eBPF, and Metoro

Apr 9, 2026

Remaster of: Season 1 · Episode 5 — Tokio with Carle Lerche

See all episodes →