WebRTC and Sans IO with Martin Algesten
Description
episode 16 — WebRTC and Sans IO with Martin Algesten.
We sit down with Rust developer Martin Algesten for a deep dive into WebRTC and the Sans IO approach to protocol design. Martin traces the surprising origins of WebRTC, explains why real time media over UDP is both powerful and painfully complex, and walks through how peer to peer connections work under the hood. The conversation then shifts to Sans IO design, why it matters for clean protocol implementations in Rust, and how Martin applies it in his own WebRTC stack, str0m.
Learn more:
- https://github.com/algesten — Github profile of Martin Algesten
- https://github.com/algesten/str0m — A Sans I/O WebRTC implementation in Rust
- https://github.com/algesten/dimpl — DTLS 1.2 implementation (Sans‑IO, Sync)
- https://datatracker.ietf.org/doc/rfc8489/ — Session Traversal Utilities for NAT (STUN)
- https://datatracker.ietf.org/doc/rfc8656/ — Traversal Using Relays around NAT (TURN)
- https://www.w3.org/TR/webrtc/ — WebRTC: Real-Time Communication in Browsers
Rama
If you like this podcast you might also like our modular network framework in Rust: https://ramaproxy.org
Chapters
- 00:00 Intro
- 00:40 Get to know Martin Algensten
- 06:16 A bit of WebRTC history
- 09:38 WebRTC 101
- 30:05 P2P and Stun
- 36:00 WebRTC: stages and flow from start to finish
- 45:43 How Martin got into WebRTC and started the str0m project
- 52:36 What is Sans IO?
- 01:06:36 Why DTLS is not Sans IO in Str0m, but Str0m is
- 01:18:34 Outro
- More information: https://netstack.fm/#episode-16
- Join our Discord: https://discord.gg/29EetaSYCD
- Reach out to us: hello@netstack.fm
Music for this episode was composed by Dj Mailbox. Listen to his music at https://on.soundcloud.com/4MRyPSNj8FZoVGpytj




