Sign inSign up

shadowner/infrarust

By shadowner

•Updated 7 months ago

High-Performance Minecraft Reverse Proxy in Rust

Buildkit cache
Image
Networking
Developer tools
0

9.6K

shadowner/infrarust repository overview

⁠Infrarust

⁠High-Performance Minecraft Reverse Proxy in Rust

Warning

Infrarust is currently in active development. This project is a Rust implementation inspired by [Infrared](https://infrared.dev/), 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.

⁠Similar Projects

⁠License

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


Tag summary

Content type

Image

Digest

sha256:3b7ac2509…

Size

4.2 MB

Last updated

7 months ago

docker pull shadowner/infrarust