• v0.1.0-alpha.1 3bdcf64c88

    QUICraft 0.1.0-alpha.1
    Some checks failed
    fabric-gametest / fabric-1.21.11 default (push) Has been cancelled
    build / build (push) Has been cancelled
    fabric-gametest / fabric-26x default (push) Has been cancelled
    fabric-gametest / fabric-26x 26.1 (push) Has been cancelled
    fabric-gametest / fabric-26x 26.1.1 (push) Has been cancelled
    fabric-gametest / fabric-26x 26.2 (push) Has been cancelled
    fabric-gametest / fabric-26x 26.3 (push) Has been cancelled
    natives / netty-quic (push) Has been cancelled
    natives / linux-aarch_64 (push) Has been cancelled
    natives / linux-x86_64 (push) Has been cancelled
    natives / osx-aarch_64 (push) Has been cancelled
    natives / osx-x86_64 (push) Has been cancelled
    natives / windows-x86_64 (push) Has been cancelled
    Pre-release

    tna released this 2026-10-14 21:52:36 +02:00 | 15 commits to main since this release

    First public alpha of QUICraft: QUIC transport for Minecraft Java Edition, with TCP as the automatic fallback.

    Alpha software. Players without the mod, and servers without the plugin, keep using TCP with no difference. Whenever QUIC can't be used (no advertisement, UDP blocked, handshake failure, an unsupported platform), the connection uses TCP without telling the player.

    Downloads

    File For Java
    quicraft-velocity-0.1.0-alpha.1.jar Velocity 4.2 proxy (plugins/) 25
    quicraft-fabric-26x-0.1.0-alpha.1.jar Fabric client and dedicated server, Minecraft 26.1 to 26.3 (mods/) 25
    quicraft-fabric-1.21.11-0.1.0-alpha.1.jar Fabric client and dedicated server, Minecraft 1.21.11 (mods/) 21

    Server owners: allow UDP on the same port number as your TCP game port (default 25565/udp). Read docs/server-security.md before you open it.

    What's in it

    • QUIC with TCP fallback by racing: the client starts QUIC, opens TCP after a short head start, and uses whichever connects first. A failure cache, persisted across restarts, keeps a UDP-blocked server from costing more than one head start per backoff window.
    • Server advertisement in the status ping. Each server has a self-signed certificate, and the client checks its fingerprint.
    • Retry tokens bound to the client's IP and port, plus per-IP and global admission limits.
    • Multi-socket listeners on Linux (udp-sockets, default auto; uses SO_REUSEPORT).
    • Server updater (Velocity and Fabric dedicated servers only). It checks hourly by default and downloads only when an operator runs quicraft update. Releases are signed with Ed25519. See "Server updater" in the README for exactly what each check sends and how to turn checks off.
    • Minecraft's own login encryption still runs inside QUIC, so login security is the same as vanilla.

    Measured

    Loopback measurements, transport level only. Details are in docs/benchmarks.md.

    • 41,403 concurrent QUIC connections held with 0 failures, at ~37 KiB of server memory per connection. The test client hit its limit first, not the server.
    • 10,000 handshakes at 2,000/s: all connected with 4 or 8 UDP sockets and no datagram drops. One socket failed 5 to 7% of them.

    Not in this alpha

    Multi-stream transport. NeoForge, Paper and Forge. Minecraft 1.21 to 1.21.10. A live updater on Windows (Windows stages the verified jar, and an operator installs it by hand). IPv6 QUIC has not been tested.

    Bundled native components (Corresponding Source)

    • Netty 4.2.19.Final (Apache-2.0)
    • netty-codec-classes-quic 4.2.19.Final-quicraft3: QUICraft's build with natives/patches/netty applied
    • netty-codec-native-quic:
      • linux-x86_64: 4.2.19.Final-quicraft3, built by natives/build-linux.sh with natives/patches/netty and natives/patches/quiche
        • quiche be47c5011215b9f13bad06bd7627d3ae49888a19 (BSD-2-Clause)
        • BoringSSL d03dbc3e5d7de44183ff17018af22323af650fbc (2026-05-12, Apache-2.0, after the 2025-02-03 relicense)
      • linux-aarch_64, osx-x86_64, osx-aarch_64, windows-x86_64: upstream 4.2.19.Final
    • Every jar is built from the tagged commit v0.1.0-alpha.1.

    Updater signing keys

    Key id Role
    a50c1ac6c6108379 primary: signs releases
    1113f8638b12fe66 backup: signs releases and revocations

    The public keys are in pubkeys/ and updater/release-trust/updater-trust.json (trust epoch 1).

    License: GPL-3.0-or-later.

    SHA-256

    c8d08a1807ebd32b473ad6e24e8bddc32f6e7c1a1dc49be1e9adff0b1f4c5d2c  quicraft-fabric-1.21.11-0.1.0-alpha.1.jar
    aeb3e84ba1e5cedbc1b4f60ad632ab92d69e19c5d4c7cc94780e0f602d7756de  quicraft-fabric-26x-0.1.0-alpha.1.jar
    ca21a4e05fb0b180e756b31f430c7df9415b07586a1646a8bf6379976f60ea94  quicraft-velocity-0.1.0-alpha.1.jar
    
    Downloads