Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

Writing QUIC in Pure Java

说明与用途

在 gumdrop 中实现了完全非阻塞的纯 Java QUIC 堆栈,支持 HTTP/3、DNS‑over‑QUIC 和 WebSocket‑over‑HTTP/3,无需本机依赖或每个连接线程。

问题

Adding HTTP/3 support to a pure‑Java async framework was blocked by the lack of a non‑blocking QUIC implementation; existing solutions required native binaries or a thread‑per‑connection model.

结果

A fully non‑blocking, pure‑Java QUIC implementation enabling HTTP/3, DNS‑over‑QUIC, and WebSocket‑over‑HTTP/3 in gumdrop without native dependencies or per‑connection threads.

工作流

  • 1. Identified limitations of existing QUIC options (native JNI, blocking Kwik).
  • 2. Designed a pure‑Java QUIC implementation with non‑blocking I/O.
  • 3. Implemented packet protection, loss detection, NewReno, connection migration, 0‑RTT, QPACK, and HTTP/3 support.
  • 4. Integrated the QUIC stack into gumdrop’s selector loop and async DNS resolver.
  • 5. Collaborated with Agent15 to use TLS 1.3 handshake layer.
  • 6. Released the QUIC layer as part of gumdrop, removing native build steps.
  • 7. Added servlet container support for HTTP/3 compatibility with existing J2EE code.

证据

The QUIC layer ships today: packet protection, NewReno, QPACK dynamic tables, 0-RTT, Retry packets, passive connection migration, WebSocket-over-HTTP/3 (RFC 9220), and automatic h3/h2/h1.x negotiation.

来源

No native build step, no QUICHE_DIR, no BoringSSL — just Java 17+.

来源

  • 记录日期: 2026-09-07T06:53:20.765Z