node-webrtc benchmarks

Lower latency and higher throughput are better. New paired results compare against release v0.7.2 on the same runner. Older results retain their recorded baseline.

WPT compatibility plan65 expected pass68 expected fail22 skipped

linux / x64

Node v26.11.1 · commit 70daa9a

Pc Create Close

Current
1.332 ms
Baseline
1.470 ms

● 7.24% inconclusive (95% CI -15.98%…1.49%)

History62f7b73: 1.363 msb070872: 1.478 ms92bf3c5: 1.741 ms61f154b: 1.079 ms3e2e6a8: 1.361 msbc5b678: 1.117 ms84d2f94: 1.389 msbf9a817: 1.690 ms3734a5d: 1.082 ms7f23023: 1.690 msfad05f3: 1.490 ms7b8d3b2: 1.692 msd9b6f26: 1.474 ms375f223: 1.373 mse6cb9c2: 1.571 msb78a05e: 1.324 ms33e63c2: 1.301 ms52c6d7b: 1.528 ms70daa9a: 1.332 ms
62f7b7319 runs70daa9a

Pc Negotiate Datachannel Open

Current
5.222 ms
Baseline
5.014 ms

↑ 4.17% slower · 95% CI 2.64%…5.69%

History62f7b73: 5.664 msb070872: 6.147 ms92bf3c5: 6.741 ms61f154b: 4.614 ms3e2e6a8: 5.062 msbc5b678: 4.767 ms84d2f94: 5.224 msbf9a817: 6.431 ms3734a5d: 4.921 ms7f23023: 6.431 msfad05f3: 6.436 ms7b8d3b2: 6.336 msd9b6f26: 5.221 ms375f223: 4.882 mse6cb9c2: 6.319 msb78a05e: 5.172 ms33e63c2: 5.046 ms52c6d7b: 7.044 ms70daa9a: 5.222 ms
62f7b7319 runs70daa9a

Datachannel Unordered Unreliable Rtt

Current
0.106 ms
Baseline
0.105 ms

● 2.88% inconclusive (95% CI -8.42%…14.17%)

History62f7b73: 0.106 msb070872: 0.095 ms92bf3c5: 0.127 ms61f154b: 0.064 ms3e2e6a8: 0.101 msbc5b678: 0.069 ms84d2f94: 0.104 msbf9a817: 0.180 ms3734a5d: 0.071 ms7f23023: 0.194 msfad05f3: 0.099 ms7b8d3b2: 0.183 msd9b6f26: 0.122 ms375f223: 0.110 mse6cb9c2: 0.169 msb78a05e: 0.110 ms33e63c2: 0.104 ms52c6d7b: 0.105 ms70daa9a: 0.106 ms
62f7b7319 runs70daa9a

Datachannel Unordered Unreliable Binary Rtt

Current
0.114 ms
Baseline
0.115 ms

● 1.23% inconclusive (95% CI -8.35%…10.81%)

History62f7b73: 0.099 msb070872: 0.126 ms92bf3c5: 0.166 ms61f154b: 0.078 ms3e2e6a8: 0.119 msbc5b678: 0.075 ms84d2f94: 0.130 msbf9a817: 0.193 ms3734a5d: 0.071 ms7f23023: 0.191 msfad05f3: 0.101 ms7b8d3b2: 0.195 msd9b6f26: 0.131 ms375f223: 0.111 mse6cb9c2: 0.175 msb78a05e: 0.112 ms33e63c2: 0.106 ms52c6d7b: 0.111 ms70daa9a: 0.114 ms
62f7b7319 runs70daa9a

Datachannel Text Throughput

Current
47362.231 messages/s
Baseline
46844.071 messages/s

● 1.68% inconclusive (95% CI -4.90%…8.27%)

History62f7b73: 69932.957 messages/sb070872: 61936.126 messages/s92bf3c5: 38190.671 messages/s61f154b: 61858.217 messages/s3e2e6a8: 50553.780 messages/sbc5b678: 54294.348 messages/s84d2f94: 48577.171 messages/sbf9a817: 33124.646 messages/s3734a5d: 57945.959 messages/s7f23023: 32089.719 messages/sfad05f3: 62574.006 messages/s7b8d3b2: 32051.814 messages/sd9b6f26: 49704.692 messages/s375f223: 46454.026 messages/se6cb9c2: 33261.284 messages/sb78a05e: 48756.762 messages/s33e63c2: 49140.806 messages/s52c6d7b: 56878.905 messages/s70daa9a: 47362.231 messages/s
62f7b7319 runs70daa9a

Datachannel Binary Throughput

Current
46.132 MiB/s
Baseline
44.964 MiB/s

● 2.86% inconclusive (95% CI -3.16%…8.89%)

History62f7b73: 65.108 MiB/sb070872: 65.346 MiB/s92bf3c5: 34.751 MiB/s61f154b: 57.911 MiB/s3e2e6a8: 47.611 MiB/sbc5b678: 53.571 MiB/s84d2f94: 46.025 MiB/sbf9a817: 32.226 MiB/s3734a5d: 55.786 MiB/s7f23023: 32.489 MiB/sfad05f3: 61.041 MiB/s7b8d3b2: 32.628 MiB/sd9b6f26: 48.195 MiB/s375f223: 47.454 MiB/se6cb9c2: 31.115 MiB/sb78a05e: 46.145 MiB/s33e63c2: 47.088 MiB/s52c6d7b: 55.198 MiB/s70daa9a: 46.132 MiB/s
62f7b7319 runs70daa9a

Node WebRTC implementation comparison

Identical DataChannel scenarios on Linux x64. Pinned alternatives are refreshed weekly and reused between relevant changes; every result shows its measurement date. Lower latency and higher throughput are better, and rankings use the median to reduce outlier bias.

@vandeurenglenn/wrtc wins 0 of 6 individual scenarios. It is highlighted in blue; each row shows its rank and distance from the best implementation.

Scenario breakdown and methodology

Only implementations on Node 26 are eligible for the overall title. Reused results avoid repeatedly benchmarking unchanged packages, but runner variance means close scores are directional until the weekly refresh confirms them. Koush wrtc 0.4.7 is measured on legacy Node 14.21.3 because it does not load on Node 26; its result is a historical reference, not a strictly equivalent runtime comparison. Create/close alone is not an end-to-end score: implementations may defer ICE, DTLS, SCTP, or native initialization until negotiation.

Pc Create Close

#1 werift 0.24.4Node v26.11.1 · measured 2026-10-10
0.052 msfastest
#2 @roamhq/wrtc 0.10.0Node v26.11.1 · measured 2026-10-10
1.090 ms+1996.2% slower
#3 Koush wrtc 0.4.7Node v14.21.3 · measured 2026-10-10
1.329 ms+2455.8% slower

Pc Negotiate Datachannel Open

#1 @roamhq/wrtc 0.10.0Node v26.11.1 · measured 2026-10-10
4.706 msfastest
#2 Koush wrtc 0.4.7Node v14.21.3 · measured 2026-10-10
5.948 ms+26.4% slower
#3 werift 0.24.4Node v26.11.1 · measured 2026-10-10
164.875 ms+3403.5% slower

Datachannel Unordered Unreliable Rtt

#1 werift 0.24.4Node v26.11.1 · measured 2026-10-10
0.101 msfastest
#2 @roamhq/wrtc 0.10.0Node v26.11.1 · measured 2026-10-10
0.116 ms+14.9% slower
#3 Koush wrtc 0.4.7Node v14.21.3 · measured 2026-10-10
0.150 ms+48.5% slower

Datachannel Unordered Unreliable Binary Rtt

#1 werift 0.24.4Node v26.11.1 · measured 2026-10-10
0.108 msfastest
#2 @roamhq/wrtc 0.10.0Node v26.11.1 · measured 2026-10-10
0.118 ms+9.3% slower
#3 Koush wrtc 0.4.7Node v14.21.3 · measured 2026-10-10
0.159 ms+47.2% slower

Datachannel Text Throughput

#1 werift 0.24.4Node v26.11.1 · measured 2026-10-10
414.805 msfastest
#2 Koush wrtc 0.4.7Node v14.21.3 · measured 2026-10-10
13920.225 ms+3255.8% slower
#3 @roamhq/wrtc 0.10.0Node v26.11.1 · measured 2026-10-10
18681.748 ms+4403.7% slower

Datachannel Binary Throughput

#1 werift 0.24.4Node v26.11.1 · measured 2026-10-10
0.405 msfastest
#2 Koush wrtc 0.4.7Node v14.21.3 · measured 2026-10-10
14.528 ms+3487.2% slower
#3 @roamhq/wrtc 0.10.0Node v26.11.1 · measured 2026-10-10
18.412 ms+4446.2% slower