Aether is a blazing-fast, low-latency TCP bridge connecting WaterdogPE Proxy (Master) with multiple AllayMC Servers (Nodes). Built with Netty for maximum performance and designed for real-time cluster state synchronization.
- Ultra-Low Latency: < 2ms network latency with TCP_NODELAY and Netty optimizations
- ProxyTransport: Optimized TCP & QUIC transport for backend servers (replaces RakNet)
- Binary Protocol: Custom framing with VarInt encoding and Snappy compression
- Star Topology: Proxy acts as Master, orchestrating network state across all Nodes
- Real-time Sync: Automatic state broadcasting with configurable intervals
- Circuit Breaker: Smart backpressure handling to prevent cascade failures
- Heartbeat System: Connection liveness detection with RTT metrics
- Secure Auth: SHA-256 key hashing with constant-time comparison
- 🌀 Seamless World Streaming: Cross-server portals with pre-loaded chunks
- 📡 Event Broadcasting: Cross-server events with LuckPerms group filtering
- 💾 Distributed PDC: PersistentDataContainer sync across network
- ⚖️ Smart Load Balancer: Multiple strategies (Round Robin, Least Connections, etc.)
- 🔧 Packet Rewrite Pipeline: Entity filtering, resource pack overrides
- 🌐 Web Admin Panel: REST API + WebSocket, i18n support (EN/RU), real-time monitoring
- 🔌 Addons System: Extensible addon architecture (coming soon)
┌─────────────────┐ TCP/Binary ┌─────────────────┐
│ WaterdogPE │◄─────────────────────────►│ AllayMC │
│ (MASTER) │ │ (NODE 1) │
│ │ TCP/Binary ├─────────────────┤
│ aether-proxy │◄─────────────────────────►│ AllayMC │
│ │ │ (NODE 2) │
│ Port: 3000 │ TCP/Binary ├─────────────────┤
│ │◄─────────────────────────►│ AllayMC │
│ Web: 8080 │ │ (NODE N) │
└─────────────────┘ └─────────────────┘
| Packet | ID | Direction | Description |
|---|---|---|---|
AuthHandshake |
0x01 | Node→Master | Initial authentication |
AuthResult |
0x02 | Master→Node | Auth response |
Heartbeat |
0x10 | Bidirectional | Connection liveness |
HeartbeatAck |
0x11 | Bidirectional | RTT measurement |
NodeSnapshot |
0x20 | Node→Master | Server state report |
NetworkState |
0x21 | Master→Nodes | Cluster state broadcast |
TransferRequest |
0x30 | Bidirectional | Player transfer |
PortalSync |
0x31 | Node↔Master | Portal configuration |
EventBroadcast |
0x32 | Bidirectional | Cross-server events |
PDCSync |
0x33 | Bidirectional | PDC synchronization |
ChunkData |
0x34 | Node↔Node | Chunk streaming |
| Module | Description |
|---|---|
aether-common |
Shared protocol, codecs, events, exceptions |
aether-api |
Public API for third-party plugins |
aether-proxy |
WaterdogPE plugin (Master role) |
aether-server |
AllayMC plugin (Node role) |
aether-web |
Web Admin Panel (Javalin + React) |
aether-addons |
Addon system foundation |
<!-- Maven -->
<dependency>
<groupId>io.github.miroshka000</groupId>
<artifactId>aether-api</artifactId>
<version>1.0.1</version>
<scope>provided</scope>
</dependency>// Gradle
compileOnly("io.github.miroshka000:aether-api:1.0.1")Get the latest release from GitHub Releases.
- Download
aether-proxy-*.jar - Place in
plugins/folder - Restart the proxy
- Configure
plugins/aether-proxy/config.yml
- Download
aether-server-*.jar - Place in
plugins/folder - Restart the server
- Configure
plugins/aether-server/config.yml
import miroshka.aether.api.AetherAPI;
AetherAPI.getInstance().ifPresent(api -> {
int globalOnline = api.getGlobalOnline();
int serverCount = api.getServerCount();
// Per-server data
int lobbyOnline = api.getServerOnline("lobby");
double lobbyTps = api.getServerTps("lobby");
});api.getEventBridge().ifPresent(bridge -> {
bridge.publish("PlayerAchievement", playerUuid, playerName,
List.of("vip", "survivor"),
Map.of("achievement", "First Kill"));
bridge.subscribe("CustomEvent", event -> {
System.out.println("Received: " + event.eventType());
});
});api.getPortalManager().ifPresent(portals -> {
portals.transferPlayer(playerUuid, "survival", true); // seamless
});api.getLoadBalancer().ifPresent(balancer -> {
balancer.selectServer(playerUuid, List.of("lobby-1", "lobby-2"))
.ifPresent(server -> player.connect(server));
});See detailed configuration in:
config.yml- Main configuration (Transport: TCP/QUIC)portals.yml- Portal definitionsevents.yml- Event subscriptionsload-balancer.yml- Balancing strategiespacket-rewrite.yml- Packet transformers
git clone https://github.com/Miroshka000/Aether.git
cd Aether
./gradlew build
# Run tests
./gradlew test- Java 21+
- WaterdogPE 2.0+ (for proxy plugin)
- AllayMC 0.18+ (for server plugin)
- LuckPerms (optional, for permission-based filtering)
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Created by Miroshka for WaterdogPE + AllayMC clusters with ⚡