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
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.
episode 37: dial9: from black box to insight in Tokio.
Remaster of: Season 1 · Episode 3 — OpenTelemetry, eBPF, and Metoro
Remaster of: Season 1 · Episode 5 — Tokio with Carle Lerche