Go Minecraft Bridge
Go Minecraft Bridge hosts plugins written in Go in both Minecraft server and client processes. The Minecraft-facing code stays in Java, while plugin logic receives immutable snapshots/events and returns actions or named system calls.
The shared code is built as two version-specific Fabric artifacts:
| Minecraft | Java | Loader | Fabric API | Cloth Config | Mod Menu |
|---|---|---|---|---|---|
1.21.1 |
21 | 0.16.14 |
0.116.14+1.21.1 |
15.0.140 |
11.0.3 |
26.1.2 |
25 | 0.19.3 |
0.149.1+26.1.2 |
26.1.154 |
18.0.0 |
Architectury Loom drives the portable 1.21.1 target, with a small source overlay for Minecraft API differences. The unobfuscated 26.1.2 target uses Fabric Loom because Architectury Loom currently requires a mappings artifact that this Minecraft distribution does not publish. Architectury portability still produces one JAR per Minecraft ABI; it does not make one universal JAR.
The current MVP also targets:
- Go 1.24 or newer;
- native Go plugins built with
-buildmode=c-shared; - initialization, server/client tick, chat, death, system-call-result, and deinitialization callbacks;
- entity snapshots and explicit subscriptions to block positions;
- chat broadcast/direct-message actions;
- extensible namespaced system calls;
- capture of Go
stdout,stderr, and the standardlogpackage; - FlatBuffers tick snapshots (ABI v2), while control-plane messages remain JSON;
- a Cloth Config management screen exposed through Mod Menu.
The backend interface is deliberately independent from Fabric and native FFI so that a WASI/WASM backend can implement the same protocol later.
The server runtime is also packaged as one Paper plugin compatible with Paper and Purpur. Its Bukkit-facing code is compiled during every build against this API matrix:
| Server | Paper API used for verification | Java runtime |
|---|---|---|
Paper/Purpur 1.21.1 |
1.21.1-R0.1-SNAPSHOT |
21+ |
Paper/Purpur 1.21.11 |
1.21.11-R0.1-SNAPSHOT |
21+ |
Paper/Purpur 26.1 |
26.1.2.build.74-stable |
25+ |
The Paper API preserves the Bukkit surface used by the bridge, so these targets share one Java 21 bytecode JAR. Purpur accepts it directly because Purpur is a Paper-compatible server implementation.
Using
Visit source github to check
Roadmap
- Adding screen render implementation
- More systemcalls and usability
- Event system with registration
- All-in-one JAR file for client
- Maybe some more...
Code is licenced under MIT Licence.
| Version | Minecraft | Loader | Download |
|---|---|---|---|
|
GBM 0.2.0 for Paper and Purpur 0.2.0-paper |
1.21.1, 1.21.11, 26.1, 26.1.2
|
paper, purpur
|
Download |
|
GBM 0.2.0 for Fabric 26.1.2 0.2.0-fabric-26.1.2 |
26.1.2
|
fabric, quilt
|
Download |
|
GBM 0.2.0 for Fabric 1.21.1 0.2.0-fabric-1.21.1 |
1.21.1
|
fabric, quilt
|
Download |
|
GoBridge 0.1.0 and Go sdk/v0.0.1 v0.1.0 |
1.21, 1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 26.1, 26.1.1, 26.1.2
|
bukkit, paper, purpur
|
Download |
|
GoBridge 0.1.0 and Go sdk/v0.0.1 v0.1.0 |
1.21.1, 1.21.10, 1.21.11, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9
|
fabric, quilt
|
Download |
|
GoBridge 0.1.0 and Go sdk/v0.0.1 v0.1.0 |
26.1.2
|
fabric, quilt
|
Download |