-
QUICraft 0.1.0-alpha.2 Pre-release
released this
2026-10-15 12:18:49 +02:00 | 2 commits to main since this releaseSecond public alpha of QUICraft: QUIC transport for Minecraft Java Edition, with TCP as the automatic fallback. It fixes a slowdown in 0-RTT rejoins. Everything else is the same as 0.1.0-alpha.1.
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.2.jarVelocity 4.2 proxy ( plugins/)25 quicraft-fabric-26x-0.1.0-alpha.2.jarFabric client and dedicated server, Minecraft 26.1 to 26.3 ( mods/)25 quicraft-fabric-1.21.11-0.1.0-alpha.2.jarFabric 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.mdbefore you open it. Servers running 0.1.0-alpha.1 can update withquicraft update checkand thenquicraft update.What changed
- Faster 0-RTT rejoins. After a 0-RTT handshake, the client used to wait out the whole rejected-0-RTT grace period, even when the server's first reply had already arrived. The grace period is G = clamp(handshake time / 4, 5 ms, 100 ms) (
docs/protocol.mdsection 8). The client now hands the connection to the game as soon as the reply arrives. The grace period is only a timeout now. Measured over the internet at about 130 ms of round-trip time, with 10 rejoins per build: the slowest rejoin dropped from 168 ms to 142 ms, and the median from 140 ms to 134 ms. The wire protocol is unchanged, and clients and servers of both alphas work together. - Test and CI fixes only. Nothing else in the jars changed.
Bundled native components (Corresponding Source)
- Netty 4.2.19.Final (Apache-2.0)
netty-codec-classes-quic4.2.19.Final-quicraft3: QUICraft's build withnatives/patches/nettyappliednetty-codec-native-quic:- linux-x86_64: 4.2.19.Final-quicraft3, built by
natives/build-linux.shwithnatives/patches/nettyandnatives/patches/quiche- quiche
be47c5011215b9f13bad06bd7627d3ae49888a19(BSD-2-Clause) - BoringSSL
d03dbc3e5d7de44183ff17018af22323af650fbc(2026-05-12, Apache-2.0, after the 2025-02-03 relicense)
- quiche
- linux-aarch_64, osx-x86_64, osx-aarch_64, windows-x86_64: upstream 4.2.19.Final
- linux-x86_64: 4.2.19.Final-quicraft3, built by
- Every jar is built from the tagged commit
v0.1.0-alpha.2.
Updater signing keys
Key id Role a50c1ac6c6108379primary: signs releases 1113f8638b12fe66backup: signs releases and revocations The public keys are in
pubkeys/andupdater/release-trust/updater-trust.json(trust epoch 1).License: GPL-3.0-or-later.
SHA-256
f198ea38a78ece0437c1da892ed537e72c7a45eb9df8622db12e96932c48b578 quicraft-fabric-1.21.11-0.1.0-alpha.2.jar c9e95c2a301c1fb7c4c171688b7c7b875f7fc451f558755d27740ff3adf8e74d quicraft-fabric-26x-0.1.0-alpha.2.jar 99d8f56f961312a57ef75a1b1782dc01e31be19a918c79cbfcbd0c4096dec65e quicraft-velocity-0.1.0-alpha.2.jarDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Faster 0-RTT rejoins. After a 0-RTT handshake, the client used to wait out the whole rejected-0-RTT grace period, even when the server's first reply had already arrived. The grace period is G = clamp(handshake time / 4, 5 ms, 100 ms) (
-
updater-metadata
Pre-releaseSome checks failedfabric-gametest / fabric-1.21.11 default (push) Has been cancelledbuild / build (push) Has been cancelledfabric-gametest / fabric-26x default (push) Has been cancelledfabric-gametest / fabric-26x 26.1 (push) Has been cancelledfabric-gametest / fabric-26x 26.1.1 (push) Has been cancelledfabric-gametest / fabric-26x 26.2 (push) Has been cancelledfabric-gametest / fabric-26x 26.3 (push) Has been cancellednatives / netty-quic (push) Has been cancellednatives / linux-aarch_64 (push) Has been cancellednatives / linux-x86_64 (push) Has been cancellednatives / osx-aarch_64 (push) Has been cancellednatives / osx-x86_64 (push) Has been cancellednatives / windows-x86_64 (push) Has been cancelledreleased this
2026-10-14 22:10:05 +02:00 | 15 commits to main since this releaseSigned update metadata for the QUICraft server updater. Replaced on every publish.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
QUICraft 0.1.0-alpha.1
Pre-releaseSome checks failedfabric-gametest / fabric-1.21.11 default (push) Has been cancelledbuild / build (push) Has been cancelledfabric-gametest / fabric-26x default (push) Has been cancelledfabric-gametest / fabric-26x 26.1 (push) Has been cancelledfabric-gametest / fabric-26x 26.1.1 (push) Has been cancelledfabric-gametest / fabric-26x 26.2 (push) Has been cancelledfabric-gametest / fabric-26x 26.3 (push) Has been cancellednatives / netty-quic (push) Has been cancellednatives / linux-aarch_64 (push) Has been cancellednatives / linux-x86_64 (push) Has been cancellednatives / osx-aarch_64 (push) Has been cancellednatives / osx-x86_64 (push) Has been cancellednatives / windows-x86_64 (push) Has been cancelledreleased this
2026-10-14 21:52:36 +02:00 | 15 commits to main since this releaseFirst 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.jarVelocity 4.2 proxy ( plugins/)25 quicraft-fabric-26x-0.1.0-alpha.1.jarFabric client and dedicated server, Minecraft 26.1 to 26.3 ( mods/)25 quicraft-fabric-1.21.11-0.1.0-alpha.1.jarFabric 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.mdbefore 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, defaultauto; 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-quic4.2.19.Final-quicraft3: QUICraft's build withnatives/patches/nettyappliednetty-codec-native-quic:- linux-x86_64: 4.2.19.Final-quicraft3, built by
natives/build-linux.shwithnatives/patches/nettyandnatives/patches/quiche- quiche
be47c5011215b9f13bad06bd7627d3ae49888a19(BSD-2-Clause) - BoringSSL
d03dbc3e5d7de44183ff17018af22323af650fbc(2026-05-12, Apache-2.0, after the 2025-02-03 relicense)
- quiche
- linux-aarch_64, osx-x86_64, osx-aarch_64, windows-x86_64: upstream 4.2.19.Final
- linux-x86_64: 4.2.19.Final-quicraft3, built by
- Every jar is built from the tagged commit
v0.1.0-alpha.1.
Updater signing keys
Key id Role a50c1ac6c6108379primary: signs releases 1113f8638b12fe66backup: signs releases and revocations The public keys are in
pubkeys/andupdater/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.jarDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads