Show Notes
Episode 10 – zerocopy with Joshua Liebow-Feeser.
A conversation with Joshua Liebow-Feeser, the developer behind netstack3 and the creator of zerocopy, a crate that makes zero-cost memory manipulation effortless. Originally built for Fuchsia, zerocopy is now used by over 400 crates on crates.io, with nearly 300 million downloads.
We explore the origins of Fuchsia, the creation and purpose of zerocopy, how it works, and why you might want to use it. And of course, we get to know Joshua and his journey so far.
Learn more:
https://model-checking.github.io/kani/ — Kani verifier https://github.com/rust-lang/rust/issues/99571 — Safe Transmute tracking issue https://github.com/rust-lang/unsafe-code-guidelines — Unsafe Code Guidelines WG https://docs.rs/zerocopy/latest/zerocopy/ — ZeroCopy documentation https://docs.rs/zerocopy-derive/latest/zerocopy_derive/ — ZeroCopy derive macros https://fuchsia.dev/fuchsia-src/get-started/learn/intro/architecture — Fuchsia networking architecture https://docs.kernel.org/networking/scaling.html — Scaling in the Linux Networking Stack https://www.youtube.com/watch?v=rFejpH_tAHM — dotGo 2015 - Rob Pike - Simplicity is Complicated
Rama
If you like this podcast you might also like our modular network framework in Rust: https://ramaproxy.org
Chapters
00:00 Intro 00:39 Introduction to Joshua Liebow-Feeser 01:34 Joshua's Journey into Software Development 11:41 The Origins of Netstack 3 17:21 The Philosophy Behind Netstack 3 23:03 The Role of Rust in Networking 42:57 The Concept and Development of ZeroCopy 53:10 Understanding Zero Copy and Its Constraints 55:11 Exploring Memory Management in Networking 59:23 Challenges with Variable Length Data Formats 01:04:20 Async Programming and Its Implications 01:11:13 Performance Considerations in Networking 01:16:50 Ambition in Software Design and API Simplicity 01:32:13 The Future of Networking and Rust's Role 01:42:42 Outro
Netstack.FM
More information: https://netstack.fm/#episode-10 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