How hard could implementing DTLS 1.3 possibly be?
In January 2026, I took on the role of leading Pion's DTLS 1.3 implementation, building the majority of it. At the time, it was still just an idea, and none of the team members fully understood how DTLS 1.3 functioned. Over the course of ten months and with approximately 400 commits, DTLS 1.3 eventually became the default in Pion/dtls.
This story aims to explain the journey behind this implementation and provide clear insights into DTLS, which I hope will have been helpful to those who read it. If you're not interested in the background, you can skip directly to the implementation section.
The initial idea for DTLS 1.3 was first introduced in January 2020, when the specification was still a draft. It was eventually standardized as RFC 9147 in 2022, but there were no dedicated individuals to commit to its implementation. Occasionally, people would inquire about updates to the project. Meanwhile, in January 2025, Sean DuBois, the creator of Pion and its libraries, approached me, asking if I'd be interested in co-maintaining the project with him and granting me owner access.
Trusting my judgment more than I trusted myself, Sean provided me with the necessary permissions. I created Pion's Discord server, reviewed pull requests daily, contributed features across the stack, and encouraged my friends to join in as well. However, I continued to monitor the DTLS 1.3 issue, as I was apprehensive about implementing such a significant change.
In May 2025, Theo (Theodor Signebøen Midtlien) applied for an NLnet grant, and just a day later, Sean offered to review and merge all my work, even reaching out to companies for funding if the grant was not awarded. The NLnet grant was subsequently awarded on August 6, and Theo announced it in the issue. At this point, R Chiu and I were heavily involved in Pion's SCTP stack, which is the foundation for WebRTC data channels.
She implemented RACK loss recovery, while Adriano Sela Aviles had joined and made significant contributions to the TURN implementation. Despite their busy schedules, both R and Adriano were unable to fully commit to the DTLS 1.3 implementation. I had already read the specification once and felt confident about its overall structure, so I was eager to assist with reviews.
R Chiu helped with the key schedule, but we all respected Theo's lead, as the project was his primary focus.
Written by urgent.news from Lobsters's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.