Skip to content

WebRTC and Sans IO with Martin Algesten

December 2, 2025 · 1 h 20 min

Show notes

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:

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

Netstack.FM

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

All episodes of netstack.fm

Settings

Display

Language

Decides which stations you see first on the home page.

History

Recently played stations and episodes and your latest searches are only stored in this browser.

Notifications

A short notice when a podcast you follow has a new episode. Turn off single podcasts with the bell on their page.

Account

Save favorites – in the app and on the website.

Keyboard shortcuts

/
Open search
Space
Play or pause
← →
In the player: back 15 s, forward 30 s (episodes) · in a row: next tile
↑ ↓
In a row: target within the tile
Home / End
In a row: first or last tile
Esc
Close window or menu
?
This overview
Now playing

Go to station page

Play next

    Add episodes with “Play next” – they play after the current episode.