The performance and compatibility update is here! đ
These features have been asked through the Discord server, feel free to join to share some feature ideas!
đ Major New Features
đ Zero Copy Passthrough Mode
A new proxy mode that lets data flow directly between client and server at the OS level, no middleman processing. Perfect for passthrough setups where you want maximum performance with minimal overhead.
proxyMode: zerocopy_passthrough- Data never passes through userspace, the kernel handles it all
- Players still appear in
/listand can be/kicked - Logs total bytes transferred when connections close
- Linux only - other platforms continue using standard
passthroughmode
đšī¸ Legacy Protocol Support (Beta 1.8 â 1.6.x)
Infrarust now supports EVERY Minecraft version from Beta 1.8 to Latest!
Old Minecraft clients use a completely different protocol, and Infrarust now detects and handles all of them automatically:
| Client Version | Support |
|---|---|
| Beta 1.8 â 1.3 | â Ping + Login |
| 1.4 â 1.5 | â Ping + Login |
| 1.6.x | â Ping + Login |
| 1.7+ | â Already supported |
- Zero configuration - legacy clients are detected automatically
- Server list ping - old clients see proper MOTD responses in their format
- Login & play - legacy clients connect through to backend servers seamlessly
- Smart MOTD conversion - modern status responses are automatically converted to legacy format
Be aware that Beta 1.8 through 1.5 don't send any host to fetch the correct MOTD, so the default MOTD encourage the player to connect to join the server.
đ Domain Rewriting
New rewriteDomain option for proxy-to-domain setups! When forwarding to another domain, the handshake domain is automatically rewritten to match the backend address.
domains:
- "play.myserver.com"
addresses:
- "downstream-proxy.example.com:25565"
rewriteDomain: true # Handshake will use "downstream-proxy.example.com"- Automatically extracts the hostname from your first address
- Also available as
backendDomainif you need to set a custom value - Works with both
passthroughandzerocopy_passthroughmodes
đ§ Fixes & Improvements
đ§ Memory Retention Fix
Fixed a memory leak that occurred when clients connected but took too long to send a request (port scanners, idle connections, etc.). Connections now time out cleanly instead of hanging around.
# Connection timeouts (in config.yaml)
handshake_timeout_secs: 10 # Default: 10 seconds
status_request_timeout_secs: 10 # Default: 10 seconds- Connections that don't send data within the timeout are cleaned up automatically
- Status request deduplication prevents memory buildup under high request spam
- Configurable from the global config to fit your needs
Don't set it too low or you might timeout legitimate request.
đ Other Fixes
- Formatting and code quality cleanup across the board
đ Migration & Compatibility
Everything is backward compatible!
- Modern clients (1.7+) are completely unaffected
- Legacy support is automatic - no config changes needed
- Zero copy mode is opt-in via
proxyMode: zerocopy_passthrough rewriteDomainis opt-in - existing configs work as before- Timeout defaults match previous behavior (10 seconds)