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

Writing QUIC in Pure Java

Описание и применение

Создан полностью неблокирующий стек QUIC на Java, позволяющий использовать HTTP/3, DNS‑over‑QUIC и WebSocket‑over‑HTTP/3 в фреймворке gumdrop без нативных зависимостей и потоков на соединение.

Задача

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