Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2025-10-22 17:24:25 -04:00
gradle/wrapper Update, no more Kotlin, support macOS 2025-10-22 12:52:31 -04:00
src Fix some string formatting and broken dependency on commons-codec 2025-10-22 17:24:25 -04:00
.editorconfig version 0.1.0 2025-04-22 12:37:48 -07:00
.gitattributes version 0.1.0 2025-04-22 12:37:48 -07:00
.gitignore Update .gitignore 2025-10-22 14:52:17 -04:00
build.gradle.kts Support certificate pinning, improve README, improve defaults 2025-10-22 16:46:21 -04:00
gradle.properties Update, no more Kotlin, support macOS 2025-10-22 12:52:31 -04:00
LICENSE version 0.1.0 2025-04-22 12:37:48 -07:00
README.md Support certificate pinning, improve README, improve defaults 2025-10-22 16:46:21 -04:00
settings.gradle.kts version 0.1.0 2025-04-22 12:37:48 -07:00

Usage

Prepend quic:// to the Minecraft server address. (tcp:// can also be used, but it has no effect as TCP is the default.)

Server configuration

By default, the server will allow QUIC connections on the default Minecraft port and will bind to the same interface as the regular server. You may override these defaults by specifying quic-ip and quic-port in the server.properties file.

The server expects to find a key.pem and cert.pem file inside the config/quic directory.

By default, the client will validate the server's certificate and check that it is signed by a trusted CA. To use an untrusted certificate, or to otherwise pin the certificate to a specific fingerprint, simply append ?fingerprint=ALGO:, replacing ALGO with your algorithm of choice (SHA-256 is recommended), to the address, followed by the certificate's fingerprint. Any message digest algorithm supported by your Java distribution will work. To obtain the certificate's fingerprint, run the following command:

openssl x509 -fingerprint -sha256 -in cert.pem

To generate a self-signed certificate, run something like this:

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 -nodes -subj "/CN=localhost"

The supported certificate algorithms are RSA, DSA, and EC.

You may want to replace the localhost CN with your IP address.

Credits

This fork builds on the work of tesinormed (Tess) and in turn ramidzkh (Ramid Khan).

Platform support

  • Linux:
    • x86-64
    • arm64
  • macOS:
    • x86-64
    • arm64
  • Windows:
    • x86-64