3 stable releases

new 1.0.2 Jan 19, 2025
1.0.0 Jan 18, 2025

#767 in Network programming

Download history 147/week @ 2025-01-13

154 downloads per month

AGPL-3.0-only

205KB
5K SLoC

Infrarust Logo

Infrarust

High-Performance Minecraft Reverse Proxy in Rust

[!WARNING] Infrarust is currently in active development. This project is a Rust implementation inspired by Infrared, focusing on performance and enhanced features.

A blazing fast Minecraft reverse proxy that allows you to expose multiple Minecraft servers through a single port. It uses domain/subdomain-based routing to direct clients to specific Minecraft servers while providing advanced features for authentication and monitoring.

Key Features

  • Efficient Reverse Proxy
    • Wildcard Domain Support
    • Multi-Domain Routing
    • Direct IP Connection Support
  • Advanced Authentication Modes
    • ClientOnly Mode with Mojang Authentication
    • Passthrough Mode
    • Offline Mode
  • Performance Optimizations
    • Status Response Caching
    • Connection Pooling
    • Proxy Protocol Support
  • Security Features
    • Rate Limiting
    • DDoS Protection
    • IP Filtering

Upcoming Features (#1)

  • RESTful API for Dynamic Configuration
  • Advanced Telemetry and Metrics
  • Web Dashboard
  • Hot Configuration Reload
  • Plugin System
  • Multi-version Support (BE/JE)

Quick Start

Prerequisites

  • Rust 1.75+ and Cargo

Installation

# From source
git clone https://github.com/shadowner/infrarust
cd infrarust
cargo build --release

# Or via cargo
cargo install infrarust

Configuration

Create a config.yaml file:

bind: "0.0.0.0:25565"
domains:
  - "*.minecraft.example.com"

And create your server configurations in the proxies directory:

domains:
  - "hub.minecraft.example.com"
addresses:
  - "localhost:25566"
proxyMode: "passthrough"  # Options: passthrough, clientOnly, offline

Documentation

Performance

Infrarust is built in Rust with a focus on performance and reliability:

  • Minimal memory footprint
  • Low CPU utilization
  • Efficient async I/O handling
  • Zero-copy packet forwarding when possible

[!NOTE] This project was initiated as a learning experience in advanced Rust programming, with continuous improvements and optimizations expected as development progresses.

Contributing

Contributions are welcome! Check out our Contributing Guidelines to get started.

Feel free to join our Discord if you have any question !

Similar Projects

License

Infrarust is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.


Dependencies

~16–29MB
~447K SLoC