Skip to content

Add quic-zig implementation (QUIC + WebTransport)#491

Open
endel wants to merge 2 commits intoquic-interop:masterfrom
endel:add-quic-zig
Open

Add quic-zig implementation (QUIC + WebTransport)#491
endel wants to merge 2 commits intoquic-interop:masterfrom
endel:add-quic-zig

Conversation

@endel
Copy link

@endel endel commented Mar 13, 2026

Summary

Adds quic-zig — a pure Zig QUIC implementation (RFC 9000/9001/9002) with HTTP/3 and WebTransport support. Zero C dependencies. Docker image auto-built via GitHub Actions CI and published to ghcr.io/endel/quic-zig:latest.

The same Docker image serves both QUIC and WebTransport tests — the entrypoint script auto-detects WT mode and dispatches to dedicated WT server/client binaries.

Supported QUIC test cases (self-interop)

Test Result
handshake
transfer
retry
http3
ecn
multiplexing
resumption
zerortt
keyupdate
longrtt
chacha20
ipv6
v2
transferloss
transfercorruption
amplificationlimit
rebind-port
rebind-addr
blackhole
handshakeloss
handshakecorruption
connectionmigration

18/22 QUIC test cases pass in self-interop.

Supported WebTransport test cases (self-interop)

Test Abbr Result
handshake H
transfer-unidirectional-receive UR
transfer-unidirectional-send US
transfer-bidirectional-receive BR
transfer-bidirectional-send BS
transfer-datagram-receive DR
transfer-datagram-send DS

7/7 WebTransport test cases pass in self-interop.

Endpoint details

  • Dockerfile: interop/runner/Dockerfile — multi-stage build, extends martenseemann/quic-network-simulator-endpoint:latest
  • Entry point: interop/runner/run_endpoint.sh — sources /setup.sh, dispatches on $ROLE, auto-detects WT mode via $PROTOCOLS
  • Image: ghcr.io/endel/quic-zig:latest (linux/amd64)
  • Role: both (client + server)
  • QLOG: writes to $QLOGDIR when set
  • SSLKEYLOGFILE: writes to $SSLKEYLOGFILE when set

Note

Add quic-zig implementation entry for QUIC and WebTransport interop tests

Registers quic-zig (image ghcr.io/endel/quic-zig:latest, role both) in implementations_quic.json and implementations_webtransport.json so it participates in both QUIC and WebTransport interop test matrices.

Macroscope summarized be7d83d.

Pure Zig QUIC implementation (RFC 9000/9001/9002) with HTTP/3 support.
No C dependencies. Docker image built via GitHub Actions CI.

Supported test cases: handshake, transfer, retry, http3, ecn,
multiplexing, resumption, zerortt, keyupdate, longrtt, chacha20,
ipv6, v2, transferloss, transfercorruption, amplificationlimit,
rebind-port, rebind-addr.
@marten-seemann
Copy link
Collaborator

Is this a private repository?

@endel
Copy link
Author

endel commented Mar 14, 2026

Hi @marten-seemann, I hope you are well! It was still private... I just opened it! 🙌

Same Docker image (ghcr.io/endel/quic-zig:latest) serves both QUIC and
WebTransport tests. The entrypoint script auto-detects WT mode and
dispatches to the dedicated WT server/client binaries.
@endel endel changed the title Add quic-zig implementation Add quic-zig implementation (QUIC + WebTransport) Mar 14, 2026
@endel
Copy link
Author

endel commented Mar 15, 2026

I've updated the PR to include the WebTransport implementation as well! 🙌

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants