-
Notifications
You must be signed in to change notification settings - Fork 0
Client Libraries
Backend servers integrate with Portal's Socket Protocol through a client library for their platform, rather than implementing the wire protocol by hand.
| Library | Language | Backend software | Install |
|---|---|---|---|
| PortalPM | PHP | PocketMine-MP | Drop plugin into plugins/
|
| PortalDF | Go | Dragonfly | go get github.com/MEMOxiiii/PortalDF |
| Portal-GeyserMC | Java | GeyserMC 2.9.5+ | Drop JAR into Geyser extensions/
|
NukkitX / PowerNukkitX support is planned; EndstoneMC (BDS) is experimental and not guaranteed due to BDS limitations — use Portal-GeyserMC as a workaround to connect BDS-based servers in the meantime.
All of the above (and any custom integration) must speak socket protocol version 3 to register with a current Portal — see Socket Protocol. Whether a given library supports registering as a NetherNet backend (vs. RakNet only) depends on that library's own version — check its own docs/wiki (linked in the table above) for what it supports and how to configure it; Backend Transports here covers what Portal itself does once a server registers either way.
If your server software isn't listed, implement the Socket Protocol directly — it's a small binary TCP protocol (auth, register, transfer, player info, server list, find-player, latency, draining). Each library above is a reference implementation of the same protocol in a different language, so they're a good starting point to read if you're writing a new one.
Whichever path you take, the library/integration needs network.communication.address and network.communication.secret from Portal's Configuration to connect.
Getting started
Integrating a backend
Embedding Portal