Skip to content

quicX Interoperability Status

This document records the latest baseline interoperability results of

quicX against the major QUIC implementations and is the canonical version

to cite externally.

For test methodology, commands, and environment, see

guide/interop_runbook.md.

ItemValue
Run modeupstream quic-interop-runner full matrix (quic-network-simulator / ns-3 topology)
Peers under test17 third-party implementations (14 bidirectional + nginx / haproxy server-only + chrome client-only)
Scenarios under test24 (22 protocol-conformance + 2 performance measurements)
Total cases744 (PASS 588 / FAIL 61 / UNSUPPORTED 95)
Overall effective pass rate90.60% (588 / 649, excluding UNSUPPORTED)
RFC conformance pass rate90.15% (531 / 589; client mode 292/312 = 93.59%, server mode 239/277 = 86.28%)
Performance pass rate95.00% (57 / 60)

  • ✅ Across the full 24-scenario × 17-peer matrix (744 cases), quicX achieves an overall effective pass rate of 90.60%.
  • ✅ 12 scenarios at 100%: handshake, transfer, longrtt, chacha20, retry, http3, blackhole, ecn, transferloss, transfercorruption, ipv6, plus goodput (30/30, avg 8.67 Mbps, peak bandwidth utilization 94.7%).
  • ✅ crosstraffic (vs TCP Cubic) 27/30 (90.0%), balanced in both directions; only kwik / mvfst (client) and xquic (server) miss the threshold.
  • ✅ Versus the previous round (91.22%): quicx → mvfst retry, quicx → quic-go http3, quicx → picoquic blackhole, and quicx → mvfst transfercorruption recovered to PASS; client-mode zerortt and server-mode handshakeloss / handshakecorruption improved markedly.
  • ⚠️ Current weak spots: connectionmigration (31.6%), rebind-addr (60.0%), rebind-port / amplificationlimit (66.7% each — amplificationlimit server mode fell to 6/14, the main regression of this round), and server-mode keyupdate (8/10).

  • Source: one full-matrix run of the upstream quic-interop-runner.
  • Environment: Linux host, Docker + ns-3 network simulation (leftnet ↔ sim ↔ rightnet); quicX runs from locally built interop_{server,client} binaries.
  • Coverage: 24 scenarios × (16 server-side peers + 15 client-side peers) = 744 combinations; no quicX ↔ quicX self-test.
  • Delta vs. previous baseline: the previous round used the same 24-scenario × 17-peer caliber (744 cases, 91.22% effective), so the two rounds are directly comparable. The overall rate dropped 0.62pp, driven mainly by server-mode amplificationlimit (14/14 → 6/14), keyupdate (9/10 → 8/10), and newly-failing xquic server multiplexing; meanwhile retry (25/26 → 26/26), http3 (26/27 → 27/27), blackhole (29/30 → 30/30), and transfercorruption (29/30 → 30/30) recovered to full marks, and zerortt (23/26 → 24/26) and handshakecorruption (24/28 → 26/28) improved. The upstream matrix does not include multiconnect / versionnegotiation.
MarkMeaning
✅SUCCEEDED
❌FAILED (test failure / throughput below threshold)
➖UNSUPPORTED — peer or scenario unsupported
—N/A — combination not run (peer does not ship that role)
MetricValue
Total cases744
✅ Passed588
❌ Failed61
➖ Unsupported95
Effective pass rate (excl. Unsupported)588 / 649 ≈ 90.60%
RFC conformance pass rate531 / 589 ≈ 90.15% (client 292/312 = 93.59%; server 239/277 = 86.28%)
Performance pass rate57 / 60 ≈ 95.00% (goodput 30/30; crosstraffic 27/30)
Pass rate incl. Unsupported588 / 744 ≈ 79.0%
Test scenarioShort nameClient-mode pass rateServer-mode pass rateCombined effective pass rateDescription
handshakeH16/16 (100.0%)14/14 (100.0%)30/30 (100.0%)Handshake completes successfully.
transferDC16/16 (100.0%)14/14 (100.0%)30/30 (100.0%)Stream data is being sent and received correctly. Connection close completes with a zero error code.
longrttLR16/16 (100.0%)14/14 (100.0%)30/30 (100.0%)Handshake completes when RTT is long.
chacha20C2014/14 (100.0%)10/10 (100.0%)24/24 (100.0%)Handshake completes using ChaCha20.
multiplexingM16/16 (100.0%)13/14 (92.9%)29/30 (96.7%)Thousands of files are transferred over a single connection, and server increased stream limits to accomodate client requests.
retryS14/14 (100.0%)12/12 (100.0%)26/26 (100.0%)Server sends a Retry, and a subsequent connection using the Retry token completes successfully.
resumptionR14/15 (93.3%)12/12 (100.0%)26/27 (96.3%)Connection is established using TLS Session Resumption.
zerorttZ14/14 (100.0%)10/12 (83.3%)24/26 (92.3%)0-RTT data is being sent and acted on.
http3314/14 (100.0%)13/13 (100.0%)27/27 (100.0%)An H3 transaction succeeded.
blackholeB16/16 (100.0%)14/14 (100.0%)30/30 (100.0%)Transfer succeeds despite underlying network blacking out for a few seconds.
keyupdateU16/16 (100.0%)8/10 (80.0%)24/26 (92.3%)One of the two endpoints updates keys and the peer responds correctly.
ecnE6/6 (100.0%)6/6 (100.0%)12/12 (100.0%)Handshake completes successfully.
amplificationlimitA14/16 (87.5%)6/14 (42.9%)20/30 (66.7%)The server obeys the 3x amplification limit.
handshakelossL114/15 (93.3%)10/13 (76.9%)24/28 (85.7%)Handshake completes under extreme packet loss.
transferlossL216/16 (100.0%)14/14 (100.0%)30/30 (100.0%)Transfer completes under moderate packet loss.
handshakecorruptionC115/15 (100.0%)11/13 (84.6%)26/28 (92.9%)Handshake completes under extreme packet corruption.
transfercorruptionC216/16 (100.0%)14/14 (100.0%)30/30 (100.0%)Transfer completes under moderate packet corruption.
ipv6616/16 (100.0%)14/14 (100.0%)30/30 (100.0%)A transfer across an IPv6-only network succeeded.
v2V28/8 (100.0%)7/8 (87.5%)15/16 (93.8%)Server should select QUIC v2 in compatible version negotiation.
rebind-portBP10/16 (62.5%)10/14 (71.4%)20/30 (66.7%)Transfer completes under frequent port rebindings on the client side.
rebind-addrBA9/16 (56.2%)10/14 (71.4%)19/30 (63.3%)Transfer completes under frequent IP address and port rebindings on the client side.
connectionmigrationCM3/5 (60.0%)3/14 (21.4%)6/19 (31.6%)A transfer succeeded during which the client performed an active migration.
goodputG16/16 (100.0%)14/14 (100.0%)30/30 (100.0%)Measures connection goodput over a 10Mbps link.
crosstrafficC14/16 (87.5%)13/14 (92.9%)27/30 (90.0%)Measures goodput over a 10Mbps link when competing with a TCP (cubic) connection.

RankImplementationClient mode (initiator)Server mode (responder)Protocol-feature pass rateCombined effective pass rateStatus
1aioquic22/22 (100.0%)22/23 (95.7%)40/41 (97.6%)44/45 (97.8%)🌟 Excellent
2picoquic24/24 (100.0%)22/24 (91.7%)42/44 (95.5%)46/48 (95.8%)🌟 Excellent
3lsquic23/24 (95.8%)22/23 (95.7%)41/43 (95.3%)45/47 (95.7%)🌟 Excellent
4ngtcp221/24 (87.5%)24/24 (100.0%)41/44 (93.2%)45/48 (93.8%)🌟 Excellent
5kwik19/22 (86.4%)22/23 (95.7%)38/41 (92.7%)41/45 (91.1%)🌟 Excellent
6neqo24/24 (100.0%)20/24 (83.3%)40/44 (90.9%)44/48 (91.7%)🌟 Excellent
7quinn22/22 (100.0%)20/24 (83.3%)38/42 (90.5%)42/46 (91.3%)🌟 Excellent
8haproxy20/22 (90.9%)N/A18/20 (90.0%)20/22 (90.9%)🌟 Excellent
9quic-go21/21 (100.0%)18/22 (81.8%)35/39 (89.7%)39/43 (90.7%)👍 Good
10msquic21/21 (100.0%)18/22 (81.8%)35/39 (89.7%)39/43 (90.7%)👍 Good
11s2n-quic20/22 (90.9%)18/20 (90.0%)34/38 (89.5%)38/42 (90.5%)👍 Good
12nginx19/21 (90.5%)N/A17/19 (89.5%)19/21 (90.5%)👍 Good
13quiche19/21 (90.5%)18/20 (90.0%)33/37 (89.2%)37/41 (90.2%)👍 Good
14xquic19/21 (90.5%)17/22 (77.3%)33/39 (84.6%)36/43 (83.7%)👍 Good
15go-x-net12/14 (85.7%)13/15 (86.7%)21/25 (84.0%)25/29 (86.2%)👍 Good
16mvfst16/19 (84.2%)11/18 (61.1%)24/33 (72.7%)27/37 (73.0%)⚠️ Needs improvement
17chromeN/A1/1 (100.0%)1/1 (100.0%)1/1 (100.0%)🌟 Excellent

Note: “Client mode” means quicX acting as client against the peer’s server; “Server mode” means the peer acting as client against the quicX server. The conformance rate excludes the goodput / crosstraffic performance scenarios.


Note: Handshake completes successfully.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅—
quicX as Server✅✅✅✅✅✅✅✅✅✅✅✅✅——✅➖

Note: Stream data is being sent and received correctly. Connection close completes with a zero error code.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅—
quicX as Server✅✅✅✅✅✅✅✅✅✅✅✅✅——✅➖

Note: Handshake completes when RTT is long.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅—
quicX as Server✅✅✅✅✅✅✅✅✅✅✅✅✅——✅➖

Note: Handshake completes using ChaCha20.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅➖✅✅✅✅✅✅➖✅✅✅✅✅✅✅—
quicX as Server✅➖✅➖➖✅✅✅➖✅✅✅✅——✅➖

Note: Thousands of files are transferred over a single connection, and server increased stream limits to accomodate client requests.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅—
quicX as Server✅✅✅✅✅✅✅✅✅✅✅✅❌——✅➖

Note: Server sends a Retry, and a subsequent connection using the Retry token completes successfully.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅➖✅✅✅✅✅✅➖✅✅✅✅✅✅✅—
quicX as Server✅➖✅✅✅✅✅✅➖✅✅✅✅——✅➖

Note: Connection is established using TLS Session Resumption.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅➖✅✅✅✅❌✅✅✅✅✅✅✅✅✅—
quicX as Server✅➖✅✅✅✅✅✅➖✅✅✅✅——✅➖

Note: 0-RTT data is being sent and acted on.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅➖✅➖✅✅✅✅✅✅✅✅✅✅✅✅—
quicX as Server✅➖✅➖✅✅✅✅❌✅❌✅✅——✅➖

Note: An H3 transaction succeeded.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅➖✅✅✅✅✅✅✅✅➖✅✅✅✅✅—
quicX as Server✅➖✅✅✅✅✅✅✅✅➖✅✅——✅✅

Note: Transfer succeeds despite underlying network blacking out for a few seconds.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅—
quicX as Server✅✅✅✅✅✅✅✅✅✅✅✅✅——✅➖

Note: One of the two endpoints updates keys and the peer responds correctly.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅—
quicX as Server✅✅✅➖➖✅➖✅➖✅✅❌✅——❌➖

Note: Handshake completes successfully.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅➖➖✅➖✅✅➖➖➖➖✅➖➖➖✅—
quicX as Server✅➖➖✅➖✅✅➖➖➖➖✅➖——✅➖

Note: The server obeys the 3x amplification limit.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅✅✅✅✅✅✅✅❌✅✅✅❌✅✅✅—
quicX as Server✅❌❌❌✅❌❌✅❌✅✅❌✅——❌➖

Note: Handshake completes under extreme packet loss.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅➖✅✅✅✅✅✅✅✅✅✅❌✅✅✅—
quicX as Server✅➖✅✅❌✅✅✅❌✅✅✅❌——✅➖

Note: Transfer completes under moderate packet loss.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅—
quicX as Server✅✅✅✅✅✅✅✅✅✅✅✅✅——✅➖

Note: Handshake completes under extreme packet corruption.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅➖✅✅✅✅✅✅✅✅✅✅✅✅✅✅—
quicX as Server✅➖✅✅✅✅✅✅❌✅✅✅❌——✅➖

Note: Transfer completes under moderate packet corruption.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅—
quicX as Server✅✅✅✅✅✅✅✅✅✅✅✅✅——✅➖

Note: A transfer across an IPv6-only network succeeded.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅—
quicX as Server✅✅✅✅✅✅✅✅✅✅✅✅✅——✅➖

Note: Server should select QUIC v2 in compatible version negotiation.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅➖➖➖➖✅✅✅➖✅✅✅➖➖✅➖—
quicX as Server✅➖➖➖➖✅✅✅➖✅✅✅➖——❌➖

Note: Transfer completes under frequent port rebindings on the client side.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client❌❌✅✅❌✅✅❌✅✅✅✅✅❌❌✅—
quicX as Server✅✅❌✅✅❌✅✅❌✅❌✅✅——✅➖

Note: Transfer completes under frequent IP address and port rebindings on the client side.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client❌❌✅❌❌✅✅❌❌✅✅✅✅❌❌✅—
quicX as Server✅✅❌✅✅❌✅✅❌✅❌✅✅——✅➖

Note: A transfer succeeded during which the client performed an active migration.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client❌➖➖❌➖✅✅➖➖➖➖✅➖➖➖➖—
quicX as Server✅❌❌❌❌❌✅❌❌❌❌✅❌——❌➖

Note: Measures connection goodput over a 10Mbps link.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅
9.30 Mbps
✅
7.97 Mbps
✅
9.43 Mbps
✅
9.19 Mbps
✅
9.35 Mbps
✅
8.35 Mbps
✅
9.47 Mbps
✅
7.97 Mbps
✅
9.26 Mbps
✅
8.55 Mbps
✅
8.54 Mbps
✅
9.17 Mbps
✅
9.26 Mbps
✅
9.40 Mbps
✅
8.97 Mbps
✅
8.69 Mbps
—
quicX as Server✅
9.20 Mbps
✅
9.38 Mbps
✅
8.17 Mbps
✅
8.77 Mbps
✅
6.81 Mbps
✅
8.70 Mbps
✅
8.88 Mbps
✅
7.11 Mbps
✅
6.82 Mbps
✅
9.20 Mbps
✅
8.23 Mbps
✅
8.59 Mbps
✅
9.03 Mbps
——✅
8.46 Mbps
➖
Section titled “📊 Measured goodput leaderboard (10 Mbps link test, average: 8.67 Mbps)”
RankImplementationRoleStatusRate detail (± jitter)Measured goodput (Mbps)Bandwidth utilization
1lsquicquicX as Client✅9470 (± 9) kbps9.47 Mbps94.7%
2quic-goquicX as Client✅9426 (± 1) kbps9.43 Mbps94.3%
3nginxquicX as Client✅9404 (± 8) kbps9.40 Mbps94.0%
4go-x-netquicX as Server✅9377 (± 17) kbps9.38 Mbps93.8%
5quichequicX as Client✅9351 (± 19) kbps9.35 Mbps93.5%
6ngtcp2quicX as Client✅9299 (± 93) kbps9.30 Mbps93.0%
7xquicquicX as Client✅9263 (± 5) kbps9.26 Mbps92.6%
8mvfstquicX as Client✅9256 (± 45) kbps9.26 Mbps92.6%
9aioquicquicX as Server✅9204 (± 85) kbps9.20 Mbps92.0%
10ngtcp2quicX as Server✅9198 (± 71) kbps9.20 Mbps92.0%
11s2n-quicquicX as Client✅9194 (± 40) kbps9.19 Mbps91.9%
12picoquicquicX as Client✅9170 (± 61) kbps9.17 Mbps91.7%
13xquicquicX as Server✅9029 (± 272) kbps9.03 Mbps90.3%
14haproxyquicX as Client✅8970 (± 53) kbps8.97 Mbps89.7%
15lsquicquicX as Server✅8884 (± 134) kbps8.88 Mbps88.8%
16s2n-quicquicX as Server✅8774 (± 142) kbps8.77 Mbps87.7%
17neqoquicX as Server✅8695 (± 164) kbps8.70 Mbps87.0%
18quinnquicX as Client✅8691 (± 6) kbps8.69 Mbps86.9%
19picoquicquicX as Server✅8589 (± 196) kbps8.59 Mbps85.9%
20aioquicquicX as Client✅8554 (± 17) kbps8.55 Mbps85.5%
21msquicquicX as Client✅8539 (± 38) kbps8.54 Mbps85.4%
22quinnquicX as Server✅8463 (± 176) kbps8.46 Mbps84.6%
23neqoquicX as Client✅8353 (± 13) kbps8.35 Mbps83.5%
24msquicquicX as Server✅8235 (± 300) kbps8.23 Mbps82.3%
25quic-goquicX as Server✅8168 (± 473) kbps8.17 Mbps81.7%
26go-x-netquicX as Client✅7972 (± 15) kbps7.97 Mbps79.7%
27kwikquicX as Client✅7966 (± 1550) kbps7.97 Mbps79.7%
28kwikquicX as Server✅7108 (± 130) kbps7.11 Mbps71.1%
29mvfstquicX as Server✅6823 (± 351) kbps6.82 Mbps68.2%
30quichequicX as Server✅6810 (± 128) kbps6.81 Mbps68.1%

💡 Performance analysis: quicX performs excellently on the 10 Mbps bottleneck link — all 30 measured scenarios in both directions (Client mode 16/16, Server mode 14/14) pass with a 100% score, the top bandwidth utilization reaches 94.7% (lsquic: 9.47 Mbps), and the global average effective rate is 8.67 Mbps.

Note: Measures goodput over a 10Mbps link when competing with a TCP (cubic) connection.

Role \ Peerngtcp2go-x-netquic-gos2n-quicquicheneqolsquickwikmvfstaioquicmsquicpicoquicxquicnginxhaproxyquinnchrome
quicX as Client✅
4.38 Mbps
✅
2.69 Mbps
✅
4.58 Mbps
✅
5.08 Mbps
✅
4.74 Mbps
✅
4.03 Mbps
✅
8.42 Mbps
❌❌✅
3.13 Mbps
✅
3.31 Mbps
✅
7.26 Mbps
✅
8.56 Mbps
✅
2.42 Mbps
✅
4.62 Mbps
✅
3.12 Mbps
—
quicX as Server✅
9.06 Mbps
✅
6.11 Mbps
✅
8.41 Mbps
✅
8.62 Mbps
✅
6.71 Mbps
✅
8.77 Mbps
✅
8.77 Mbps
✅
6.58 Mbps
✅
6.64 Mbps
✅
8.96 Mbps
✅
8.55 Mbps
✅
8.50 Mbps
❌——✅
8.10 Mbps
➖

📊 Detailed results of the TCP (Cubic) competition runs

Section titled “📊 Detailed results of the TCP (Cubic) competition runs”
RankImplementationRoleStatusRate detail (± jitter)Measured goodput (Mbps)Notes
1ngtcp2quicX as Server✅9058 (± 129) kbps9.06 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 90.6%)
2aioquicquicX as Server✅8960 (± 84) kbps8.96 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 89.6%)
3lsquicquicX as Server✅8770 (± 168) kbps8.77 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 87.7%)
4neqoquicX as Server✅8765 (± 268) kbps8.77 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 87.6%)
5s2n-quicquicX as Server✅8621 (± 68) kbps8.62 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 86.2%)
6xquicquicX as Client✅8564 (± 116) kbps8.56 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 85.6%)
7msquicquicX as Server✅8548 (± 273) kbps8.55 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 85.5%)
8picoquicquicX as Server✅8503 (± 137) kbps8.50 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 85.0%)
9lsquicquicX as Client✅8423 (± 125) kbps8.42 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 84.2%)
10quic-goquicX as Server✅8414 (± 97) kbps8.41 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 84.1%)
11quinnquicX as Server✅8097 (± 226) kbps8.10 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 81.0%)
12picoquicquicX as Client✅7256 (± 129) kbps7.26 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 72.6%)
13quichequicX as Server✅6706 (± 310) kbps6.71 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 67.1%)
14mvfstquicX as Server✅6642 (± 163) kbps6.64 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 66.4%)
15kwikquicX as Server✅6578 (± 108) kbps6.58 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 65.8%)
16go-x-netquicX as Server✅6106 (± 107) kbps6.11 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 61.1%)
17s2n-quicquicX as Client✅5076 (± 152) kbps5.08 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 50.8%)
18quichequicX as Client✅4737 (± 481) kbps4.74 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 47.4%)
19haproxyquicX as Client✅4620 (± 77) kbps4.62 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 46.2%)
20quic-goquicX as Client✅4582 (± 191) kbps4.58 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 45.8%)
21ngtcp2quicX as Client✅4378 (± 746) kbps4.38 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 43.8%)
22neqoquicX as Client✅4033 (± 87) kbps4.03 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 40.3%)
23msquicquicX as Client✅3315 (± 70) kbps3.31 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 33.1%)
24aioquicquicX as Client✅3133 (± 157) kbps3.13 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 31.3%)
25quinnquicX as Client✅3125 (± 123) kbps3.12 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 31.2%)
26go-x-netquicX as Client✅2694 (± 94) kbps2.69 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 26.9%)
27nginxquicX as Client✅2416 (± 99) kbps2.42 MbpsFair bandwidth share established on the 10 Mbps competing link (utilization 24.2%)
-kwik, mvfstquicX as Client❌——Below the interop-runner threshold when competing against TCP Cubic
-xquicquicX as Server❌——Below the interop-runner threshold when competing against TCP Cubic

💡 Competition analysis: quicX shows balanced, bidirectional resilience against TCP Cubic competition: as Server it secures 13/14 (92.9%) of the 14 peer clients with an average captured rate > 8.0 Mbps (above 9.0 Mbps against ngtcp2, and 8.96 Mbps against aioquic); as Client 14/16 (87.5%) pass, with the highest capture efficiency against xquic (8.56 Mbps) and lsquic (8.42 Mbps). The combined anti-TCP-Cubic pass rate reaches 90.0% (27/30); only the kwik / mvfst (Client) and xquic (Server) combinations fall short.